dark proxyscrape logotipo

Como me tornei um "milionário" de leads

Fev-01-20245 minutos de leitura

~ Um conto de raspagem da Web por Arya - Uma usuária do ProxyScrape Só para esclarecer, sou obrigada a declarar que não sou representante oficial do ProxyScrape. No entanto, sou uma grande fã e cliente de seus serviços. Se ainda não estiver usando os serviços deles, recomendo enfaticamente que o faça! Os

~ Uma história de webscraping contada por Arya - Um usuário do ProxyScrape

Só para esclarecer, sou obrigado a informar que não sou representante oficial do site ProxyScrape. No entanto, sou um grande fã e cliente de seus serviços. Se ainda não estiver usando os serviços deles, recomendo enfaticamente que o faça! As opiniões e pensamentos a seguir são inteiramente meus.


"Oh $!*^, não tem como"

Esse é o sentimento exato que eu me peguei murmurando às 3 da manhã, lutando com a percepção de que uma empresa que já foi tão moderna quanto as entregas de leite, algo que a maioria das pessoas remeteria à era da música disco e àquelas roupas de neon selvagens, ainda está na moda como um corte de cabelo ruim dos anos 80 - e, infelizmente, está em toda parte.

Essa empresa foi o verdadeiro negócio em seu auge. Quero dizer, não era possível escapar dela durante seu auge. Agora, seu nome só é mencionado com um toque de nostalgia em casas de repouso.

"YellowPages".

Você pode estar se perguntando: "Por que isso é importante? Por que alguém deveria se importar com isso? Por que isso não é um TikTok dos anos 30 com um cara jogando GTA 5 na outra metade?" Bem, um dos usos mais interessantes da Web scraping é a descoberta e a geração de leads. Em nosso país das maravilhas capitalista, onde todos estão vendendo coisas malucas, faz sentido vasculhar a Internet em busca de otários que vão "HODL" e "FOMO" em seu timeshare de criptomoedas que tem o formato de "metade de um losango". E, só para esclarecer, "NÃO é um esquema de pirâmide... tem apenas o formato daquelas famosas coisas pontudas do Egito".

Então, aqui está o ponto principal. Uma das joias absolutas para a geração de leads B2B, na minha humilde opinião, é a YellowPages (ou Yell, para vocês do "chewsday"). Por quê? Bem, deixe-me explicar:

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

  1. "Eu não sou como as outras garotas": Embora os scrapers novatos acreditem que o Google Maps é o Santo Graal para os leads de pequenas empresas, todo scraper experiente sabe que isso é uma grande besteira - ele está saturado, todo garoto de 14 anos inspirado por um certo homem careca já assediou essas empresas.

  1. "como tirar doce de um bebê": Os sites da YellowPages e seus derivados não têm um pingo de proteção. Eu poderia acessar scrape todas as empresas de seu diretório em segundos. Estamos falando de dezenas de milhões de leads aqui.

Claro, pode não ser a palavra da moda nos círculos de marketing, mas é aí que está a oportunidade. Enquanto os outros perseguem as últimas tendências, os poucos 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 leads, é uma relíquia com potencial inexplorado e um roteiro para o sucesso.

Agora, você deve estar se perguntando: "Como eu poderia aproveitar essa oportunidade?" - Vamos percorrer todas as etapas juntos e, com sorte, até mesmo alguns de vocês, Neandertais, poderão acessar scrape YellowPages ao final deste artigo.

Abordaremos isso como faríamos com qualquer outro site. A primeira etapa é descobrir como o site funciona. Isso geralmente exige que você, sim, você, descubra como navegar até o local onde estão os dados mais interessantes. Não $!*^... como você espera extrair os dados se não consegue encontrá-los?!?

Mostrado acima: Página de destino do YellowPages CanadaA página de destino da YellowPages Canada, a infeliz vítima desta postagem.

Como você pode ver acima, na página inicial, há duas entradas de texto - uma para o termo de pesquisa e outra para o local. Vamos preenchê-las e fazer uma busca; estarei procurando por "Dentists" (Dentistas) em "Toronto, Ontario".

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

Depois de descobrir seu ABC, preenchê-lo e conseguir localizar o botão de pesquisa E clicar nele (estou impressionado), você deverá ser redirecionado para uma página como a acima, que tem um caminho como o seguinte:

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

Podemos deduzir a seguinte estrutura de caminho (isso será útil mais tarde):


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

Outro aspecto a ser observado é que já localizamos os dados que queremos, as listagens de empresas. Vamos descobrir de onde essas listagens de empresas estão sendo carregadas. Elas devem ser enviadas dentro do documento OU obtidas de um endpoint de API (ou, se você for desatento, e acredite, eu já vi isso - websockets).

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

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

Ao examinarmos as solicitações de API em busca dos dados, foi comprovado que era inútil. Então, voltamos nossa atenção para o HTML. Agora, aqui está um pequeno insight para você - depois de "navegar no cenário digital por 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 vamos ser realistas. Dado o status da YellowPages como uma empresa de listas telefônicas que busca desesperadamente relevância e, o que é mais importante, receita, é improvável que eles estejam ostentando pilhas de tecnologia de ponta. As chances de eles contratarem desenvolvedores que ostentam flanelas e têm cinquenta aplicativos de tarefas baseados em React em seus currículos são quase nulas. Então, será que estamos realmente chocados com o fato de a página da Web ser estática?

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

Deixarei que você descubra como extrair individualmente os dados além desse nível de granularidade; caso contrário, ficaríamos aqui para sempre. Use o atributo "itemprop" - ele deve facilitar significativamente o processo para você.

Agora, para automatizar a extração: Você deve paginar os resultados usando o 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 o Rust para esse projeto, pois ele é rápido e oferece fácil paralelização (o que será importante em um segundo momento), aproveitando as caixas "reqwest" e "select" para lidar com o trabalho pesado. E aqui vão algumas dicas profissionais: lembre-se de alternar o agente do usuário, definir o referenciador corretamente, usar um proxy e, POR FAVOR, não faça DDOS.

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

Seu script deve estar pronto para ser usado. Mas como podemos melhorar isso ainda mais? Vamos colocar nossa única célula cerebral combinada para trabalhar e refletir... "Precisamos solicitar sequencialmente cada página?" Absolutamente não. O YellowPages facilita muito a paralelização desse processo, fornecendo o número de páginas disponíveis para a consulta - dica, dica, piscadela, piscadela.

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 acessar qualquer página além de 60 nos resultados não será renderizada. Portanto, defina um limite rígido para sua paralelização em 60. scrape Supondo que a largura de banda e a capacidade de computação sejam adequadas, todas as páginas de resultados devem ser extraídas no mesmo tempo que você levaria para acessar uma página no modelo sequencial.

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

Agora, você deve estar se perguntando: isso foi clickbait? O que a parte do "milionário" tem a ver com tudo isso? Bem, se você acompanhou o processo e agora possui um script funcional, posso ou não atestar pessoalmente que nada o impede de, teoricamente, iterar por todas as cidades do Canadá e extrair do YellowPages todas as listas de empresas de uma consulta dentro dessa cidade. Esses dados podem literalmente ter um valor em dólares na casa dos milhões se forem aumentados adequadamente, mas também são literalmente milhões de empresas no diretório deles que agora estão ao seu alcance.

As Páginas Amarelas podem evocar lembranças de uma época passada, mas seu potencial para a geração de leads B2B continua sendo um tesouro escondido no cenário digital. Ao navegar pelas peculiaridades de sua interface estática na Web, scraping os dados dessa plataforma aparentemente desatualizada revelam uma vasta gama de oportunidades de negócios. A natureza negligenciada e subutilizada da YellowPages faz dela uma oportunidade única.

Meu único objetivo é que esta postagem do blog não o deixe pensando "o verdadeiro tesouro foram os amigos que fizemos ao longo do caminho". Espero que ela tenha demonstrado as oportunidades exclusivas que existem, especialmente com o conjunto de habilidades que muitos de nós consideramos garantido, e também que tenha servido como uma leitura interessante para aqueles que têm experiência nesse campo e que tenha dado uma visão para aqueles que não têm.

Como sempre, mantenha-se seguro, use proteção e, pelo amor de Deus... não faça algo em que o FBI vá atrás de você - bem... nesse caso, seria a RCMP.

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