escuro proxyscrape logótipo

Como me tornei um "milionário" de leads

Fev-01-20245 minutos de leitura

~ A webscraping tale by Arya – A ProxyScrape user Just to be clear, I am required to make a disclaimer that I am not an official representative of ProxyScrape. However, I am a huge fan and customer of their services. If you’re not already using their services, I highly recommend you do so! The

~ Uma história de webscraping por Arya - Um utilizador de ProxyScrape

Para que fique claro, sou obrigado a declarar que não sou um representante oficial de ProxyScrape. No entanto, sou um grande fã e cliente dos seus serviços. Se ainda não está a utilizar os seus serviços, recomendo vivamente que o faça! As opiniões e pensamentos que se seguem são inteiramente meus.


"Oh $!*^, não há hipótese"

Foi exatamente este o sentimento que dei por mim a murmurar às 3 da manhã, ao aperceber-me de que uma empresa outrora tão na moda como as entregas de leite, algo que a maioria das pessoas remeteria para a era da música disco e daqueles fatos de néon selvagens, ainda anda por aí como um mau corte de cabelo dos anos 80 - e, infelizmente, está em todo o lado.

Esta empresa foi o verdadeiro negócio no seu auge. Quero dizer, não se podia escapar-lhe durante o seu apogeu. Agora, o seu nome só é murmurado com um toque de nostalgia nos lares de idosos.

"Páginas Amarelas".

Poderá estar a perguntar-se: "Porque é que isto é importante? Porque é que alguém se há-de importar com isto? Porque é que isto não é um TikTok dos anos 30 com um tipo a jogar GTA 5 na outra metade?" Bem, uma das utilizações mais populares da recolha de dados da Web é a descoberta e geração de contactos. No nosso país das maravilhas capitalista, onde toda a gente vende merdas malucas, faz sentido vasculhar a Internet à procura dos otários que vão "HODL" e "FOMO" para o seu timeshare criptográfico que tem a forma de "meio losango". E, para que fique claro, "NÃO é um esquema de pirâmide... tem apenas a forma daquelas famosas coisas pontiagudas do Egipto".

So, here’s the kicker. One of the absolute gems for B2B lead generation, in my humble opinion, is none other than YellowPages (or Yell for you “chewsday” people). Why? Well, let me break it down:

  1. "muro da vergonha": As relíquias que ainda não se adaptaram à era da Internet ainda lá estão. O negócio do seu avô deve estar lá, tal como aquela SMMA que começou por causa do TikToks e que abandonou em três meses, e que agora está imortalizada nos directórios de empresas do Google.

  1. "Não sou como as outras raparigas": Apesar de os scrapers novatos acreditarem que o Google Maps é o Santo Graal para os contactos de pequenas empresas, qualquer scraper experiente sabe que isso é uma grande treta - está saturado, todas as raparigas de 14 anos inspiradas por um certo homem careca já assediaram essas empresas.

  1. "como tirar um doce a um bebé": Os sítios YellowPages e os seus derivados não têm qualquer proteção. Eu poderia recolher todas as empresas do seu diretório em segundos. Estamos a falar de dezenas de milhões de contactos.

É certo que pode não ser a palavra de ordem nos círculos de marketing, mas é aí que reside a oportunidade. Enquanto outros perseguem as últimas tendências, os mais experientes reconhecem o potencial nos cantos esquecidos da Internet. As Páginas Amarelas podem ser uma relíquia do passado, mas no mundo da geração de contactos, é uma relíquia com potencial inexplorado e um roteiro para o sucesso.

Agora, pode estar a perguntar-se: "Como é que eu aproveitaria uma oportunidade destas?" - Vamos percorrer todos os passos juntos e, com sorte, até mesmo alguns de vocês, Neandertais, serão capazes de raspar as Páginas Amarelas no final disto.

Vamos abordar isto como faríamos com qualquer outro sítio Web. O primeiro passo é descobrir como é que o site funciona. Normalmente, isto requer que tu, sim, tu, descubras como navegar até ao local onde se encontram os dados sumarentos. Não $!*^... como é que esperas extrair os dados se não os consegues encontrar pooky?!?

Mostrado acima: A página de destino do YellowPages CanadaA infeliz vítima deste post.

Como pode ver acima, na página de destino, existem duas entradas de texto - uma para o seu termo de pesquisa e outra para a localização. Vamos preenchê-las e fazer uma pesquisa; vou procurar "Dentists" (Dentistas) em "Toronto, Ontario".

Mostrado acima: A página de resultados de listagem do YellowPages Canada.

Assim que descobrir o seu ABC e o preencher e conseguir localizar o botão de pesquisa E clicar nele (estou impressionado), deve ser redireccionado para uma página como a que está acima, que tem um caminho como o seguinte:

/search/si/1/Dentistas/Toronto+ON

Podemos deduzir a seguinte estrutura de trajetória (isto será útil mais tarde):


/search/si/[Número de página]/[Termo de pesquisa]/[Localidade]+[Código da região]

Outro aspeto a ter em conta é que já localizámos os dados que pretendemos, as listas de empresas - vamos descobrir de onde estão a ser carregadas essas listas de empresas, que devem ser enviadas dentro do documento OU obtidas a partir de um ponto de extremidade da API (ou, se fores teimoso, e acredita que já vi isso - websockets).

Mostrado acima: As solicitações fetch/XHR originadas da página. (Spoiler: os dados não estão em nenhum deles).

Mostrado acima: As listas de empresas dentro do documento. (OMGEEE Os dados estavam de facto dentro do documento).

Ao analisarmos os pedidos de API, à procura dos dados, provámos que era inútil. De seguida, voltámos a nossa atenção para o HTML. Agora, aqui está uma pequena pepita de informação para si - depois de "navegar na paisagem digital durante mais de uma década", eu sabia instintivamente que os dados estavam dentro do documento, graças à rápida capacidade de resposta das páginas.

Mas sejamos realistas. Dado o estatuto da YellowPages como uma empresa de listas telefónicas que procura desesperadamente relevância e, mais crucialmente, receitas, é improvável que estejam a exibir pilhas de tecnologia de ponta. As hipóteses de contratarem programadores que ostentam flanelas e têm cinquenta aplicações de tarefas baseadas em React no seu currículo são quase nulas. Então, será que estamos verdadeiramente chocados com o facto de a página web ser estática?

No entanto, as listagens na página estão contidas numa div, extraível com o seletor "div.resultList". Cada listagem individual, convenientemente aninhada no elemento acima mencionado, pode ser extraída com o seletor div[itemtype="http://schema.org/LocalBusiness] 

Vou deixar que descubram como extrair individualmente os dados para além deste nível de granularidade; caso contrário, estaríamos aqui para sempre. Utilize o atributo "itemprop" - deve facilitar-lhe significativamente o processo.

Agora, para automatizar a extração: Você deve paginar os resultados usando a URL (lembre-se da estrutura de caminho que discutimos anteriormente), extraindo elementos e dados de cada página até chegar a uma página vazia. Pessoalmente, optei por usar Rust para este projeto, uma vez que é rápido e permite uma paralelização fácil (que será importante num segundo momento), aproveitando as caixas "reqwest" e "select" para tratar do trabalho pesado. E aqui vão algumas dicas profissionais: lembre-se de rotacionar seu agente de usuário, configurar seu referenciador corretamente, usar um proxy e, POR FAVOR, não faça DDOS.

Mostrado acima: Página de resultados vazia do YellowPages.

Your script should be good to go now. But how can we elevate this even further? Let’s put our singular combined brain cell to work and ponder… “Do we need to sequentially request each page?” Absolutely not. YellowPages makes it remarkably easy for us to parallelize this process by providing the number of pages available for the query – hint, hint, wink, wink.

Mostrado acima: Contagem de páginas do YellowPages na parte inferior da página de resultados.

No entanto, há uma ressalva a essa estratégia de paralelização: Embora o YellowPages possa sugerir a existência de mais de 60 páginas de resultados, a tentativa de aceder a qualquer página para além de 60 nos resultados não será apresentada. Portanto, defina um limite rígido para sua paralelização em 60. Partindo do princípio de que existe largura de banda e capacidade de computação adequadas, cada página de resultados deve ser recolhida no mesmo tempo que demoraria a recolher uma página no modelo sequencial.

Mostrado acima: Exemplo de dados de listagem extraídos do YellowPages.

Agora, podem estar a perguntar-se: isto é clickbait? O que é que a parte do "milionário" tem a ver com tudo isto? Bem, se acompanhou o processo e agora possui um script funcional, posso ou não ser capaz de atestar pessoalmente que nada o impede de, teoricamente, iterar por todas as cidades do Canadá e obter todas as listagens de empresas de uma consulta dentro dessa cidade a partir do YellowPages. Estes dados podem literalmente ter um valor de milhões de dólares se forem devidamente aumentados, mas também são literalmente milhões de empresas no seu diretório que estão agora ao seu alcance.

As Páginas Amarelas podem evocar memórias de uma era passada, mas o seu potencial para a geração de contactos B2B continua a ser um tesouro escondido na paisagem digital. Ao navegar pelas peculiaridades da sua interface Web estática, a recolha de dados desta plataforma aparentemente desactualizada revela uma vasta gama de oportunidades de negócio. A natureza negligenciada e subutilizada das Páginas Amarelas torna-as uma oportunidade única.

O meu único objetivo é que esta publicação não vos deixe a pensar "o verdadeiro tesouro foram os amigos que fizemos ao longo do caminho". Espero que esta publicação tenha demonstrado as oportunidades únicas que existem, especialmente com o conjunto de competências que muitos de nós tomam como garantidas, e que tenha servido como uma leitura interessante para aqueles que têm experiência nesta área e que tenha dado uma ideia àqueles que não têm.

Como sempre, mantenham-se seguros, usem proteção e, pelo amor de Deus... não façam nada que leve o FBI a perseguir-vos - bem... neste caso, seria a RCMP.

Mostrado acima: O equivalente canadiano do FBI - a RCMP.