Como me tornei um "milionário" de leads

Mar-06-20245 minutos de leitura

~ 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".

You might be wondering, “Why does this matter? Why should anyone give a damn? Why is this not a 30s TikTok with a dude playing GTA 5 on the other half of it?” Well, one of the hottest uses for web scraping is lead discovery and generation. In our capitalist wonderland where everyone’s peddling some crazy sh*t, it just makes sense to scour the internet for the suckers who’ll “HODL” and “FOMO” into your crypto timeshare that’s shaped like “half a rhombus”. And hey, just to be clear, “it’s NOT a pyramid scheme… it’s just shaped like those famous pointy things in Egypt.”

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:

"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.

"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.

"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?!?

Shown Above: YellowPages Canada’s landing page, the unfortunate victim of this post.

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".

Shown Above: YellowPages Canada’s listing results page.

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 desejamos, 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).

As we sifted through the API requests, looking for the data, it was proven futile. We then turned our attention to the HTML. Now, here’s a little nugget of insight for you – after “navigating the digital landscape for over a decade”, I knew instinctively that the data was within the document, thanks to the pages’ snappy responsiveness.

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ê.

Now, to automate extraction: You should paginate through the results using the URL (recall the path structure we discussed earlier), extracting elements and data from each page until you hit an empty page. I personally opted to use Rust for this project as it’s fast and provides easy parallelization (which will be important in a second), leveraging the “reqwest” and “select” crates to handle the heavy lifting. And here’s a few pro tips: remember to rotate your user agent, set your referrer correctly, use a proxy, and PLEASE don’t DDOS them.

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 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 listagens 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 ultrapassada 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.