dark proxyscrape logo

Comment je suis devenu un "millionnaire" en prospects

Fév-01-20245 minutes de lecture

~ Une histoire de webcraping par Arya - Un utilisateur de ProxyScrape

Pour être clair, je dois préciser que je ne suis pas un représentant officiel de ProxyScrape. Cependant, je suis un grand fan et un client de leurs services. Si vous n'utilisez pas encore leurs services, je vous recommande vivement de le faire ! Les opinions et pensées qui suivent sont entièrement les miennes.


"Oh $!*^, c'est impossible"

C'est exactement le sentiment que je me suis surpris à marmonner à 3 heures du matin, en me rendant compte qu'une entreprise autrefois aussi branchée que les livraisons de lait, quelque chose que la plupart des gens relégueraient à l'époque de la musique disco et de ces tenues néon délirantes, traîne encore comme une mauvaise coupe de cheveux des années 80 - et malheureusement, elle est partout.

Cette entreprise était une véritable affaire à l'époque de sa splendeur. Il était impossible d'y échapper à l'époque de sa splendeur. Aujourd'hui, son nom n'est plus prononcé qu'avec un brin de nostalgie dans les maisons de retraite.

"Pages Jaunes".
Vous vous demandez peut-être : "En quoi cela est-il important ? Pourquoi quelqu'un devrait-il s'en préoccuper ? Pourquoi ne s'agit-il pas d'un TikTok des années 30 avec un mec jouant à GTA 5 sur l'autre moitié ?" Eh bien, l'une des utilisations les plus courantes du web scraping est la découverte et la génération de prospects. Dans notre pays des merveilles capitaliste où tout le monde vend des trucs bizarres, il est tout à fait logique de parcourir l'Internet pour trouver les pigeons qui vont "HODL" et "FOMO" dans votre crypto temps partagé qui a la forme d'un "demi losange". Et pour être clair, "ce n'est PAS un système pyramidal... il a juste la forme de ces fameuses choses pointues en Égypte".
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. Le "mur de la honte" : Ces reliques qui n'ont pas encore rattrapé l'ère de l'internet y traînent encore. L'entreprise de votre grand-père s'y trouve probablement, tout comme cette SMMA que vous avez créée grâce à TikToks et que vous avez abandonnée au bout de trois mois, mais qui est désormais immortalisée dans les annuaires professionnels de Google.
  1. "Je ne suis pas comme les autres filles" : Alors que les scrapeurs au visage frais croient que Google Maps est le Saint Graal pour les petites entreprises, tous les scrapeurs avertis savent que c'est de la foutaise - c'est saturé, tous les jeunes de 14 ans inspirés par un certain homme chauve ont harcelé ces entreprises.
  1. "c'est comme prendre des bonbons à un bébé" : Les sites web de PagesJaunes et leurs dérivés ne bénéficient d'aucune protection. Je pourrais récupérer toutes les entreprises de leur annuaire en l'espace de quelques secondes. Nous parlons ici de dizaines de millions de prospects.

Certes, ce n'est peut-être pas le mot à la mode dans les cercles de marketing, mais c'est là que réside l'opportunité. Alors que d'autres courent après les dernières tendances, les plus avisés reconnaissent le potentiel des coins oubliés d'Internet. Pages Jaunes est peut-être une relique du passé, mais dans le monde de la génération de leads, c'est une relique avec un potentiel inexploité et une feuille de route vers le succès.

Vous vous demandez peut-être : "Comment tirer parti d'une telle opportunité ?" - Parcourons ensemble toutes les étapes et, avec un peu de chance, même certains d'entre vous, les hommes de Neandertal, seront capables de gratter les Pages Jaunes à la fin de cet article.

Nous aborderons cette question comme nous le ferions pour n'importe quel autre site web. La première étape consiste à comprendre le fonctionnement du site web. Pour cela, il faut généralement que vous, oui, vous, trouviez comment naviguer jusqu'à l'endroit où se trouvent les données juteuses. Non!*^... comment voulez-vous extraire les données si vous ne pouvez pas les trouver ?!?

Ci-dessus : La page d'accueil de PagesJaunes CanadaLa page d'accueil de PagesJaunes Canada, la malheureuse victime de ce billet.

Comme vous pouvez le voir ci-dessus sur leur page d'accueil, il y a deux entrées de texte - l'une pour votre terme de recherche et l'autre pour le lieu. Remplissons-les et effectuons une recherche ; je chercherai "Dentistes" à "Toronto, Ontario".

Une fois que vous avez trouvé votre ABC et que vous l'avez rempli, et que vous avez réussi à localiser le bouton de recherche ET à cliquer dessus (je suis impressionné), vous devriez être redirigé vers une page comme celle ci-dessus, dont le chemin d'accès ressemble à ce qui suit :

/search/si/1/Dentistes/Toronto+ON

Nous pouvons en déduire la structure de chemin suivante (cela nous sera utile plus tard) :


/search/si/[Numéro de page]/[Terme de recherche]/[Localité]+[Code région]

Une autre chose à noter, nous avons déjà localisé les données que nous voulons, les listes d'entreprises - il faut déterminer d'où ces listes d'entreprises sont chargées, elles devraient être envoyées dans le document OU récupérées à partir d'un point de terminaison API (ou si vous êtes un peu bizarre, et croyez-moi je l'ai vu - websockets).

Ci-dessus : Les requêtes fetch/XHR provenant de la page. (Spoiler : les données ne se trouvent dans aucune d'entre elles).
Ci-dessus : Les listes d'entreprises contenues dans le document. (OMGEEE Les données se trouvaient effectivement dans le document).
Nous avons passé au crible les requêtes de l'API à la recherche des données, mais cela s'est avéré inutile. Nous nous sommes alors intéressés au code HTML. Après avoir "navigué dans le paysage numérique pendant plus d'une décennie", je savais instinctivement que les données se trouvaient dans le document, grâce à la réactivité rapide des pages.

Mais soyons réalistes. Étant donné que Pages Jaunes est une société d'annuaires téléphoniques qui cherche désespérément à être pertinente et, plus important encore, à générer des revenus, il est peu probable qu'elle fasse étalage d'une technologie de pointe. Les chances qu'ils embauchent des développeurs qui arborent des pantalons et qui ont cinquante applications de tâches basées sur React sur leur CV sont minces, voire inexistantes. Alors, sommes-nous vraiment choqués que la page web soit statique ?

Néanmoins, les listes de la page sont contenues dans un élément div, qui peut être extrait à l'aide du sélecteur "div.resultList". Chaque liste individuelle, commodément imbriquée dans l'élément susmentionné, peut être extraite à l'aide du sélecteur div[itemtype="http://schema.org/LocalBusiness] 

Je vous laisse découvrir comment extraire individuellement les données au-delà de ce niveau de granularité ; sinon, nous serions ici pour toujours. Utilisez l'attribut "itemprop" - il devrait vous faciliter considérablement la tâche.

Passons maintenant à l'automatisation de l'extraction : Vous devez paginer à travers les résultats en utilisant l'URL (rappelez-vous la structure de chemin dont nous avons parlé plus tôt), en extrayant les éléments et les données de chaque page jusqu'à ce que vous atteigniez une page vide. J'ai personnellement choisi d'utiliser Rust pour ce projet car il est rapide et permet une parallélisation facile (ce qui sera important dans une seconde), en utilisant les crates "reqwest" et "select" pour faire le gros du travail. Et voici quelques conseils de pro : n'oubliez pas de faire pivoter votre agent utilisateur, de définir correctement votre référent, d'utiliser un proxy, et s'il vous plaît, ne les DDOSsez pas.
Ci-dessus : La page de résultats vide de PagesJaunes.
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.
Ci-dessus : Le nombre de pages de PagesJaunes au bas de la page des résultats.

Cette stratégie de parallélisation présente toutefois un inconvénient : Bien que PagesJaunes puisse suggérer qu'il existe plus de 60 pages de résultats, toute tentative d'accès à une page au-delà de 60 dans les résultats n'aboutira pas. Par conséquent, fixez une limite stricte à 60 pages pour votre parallélisation. En supposant que la bande passante et la puissance de calcul soient suffisantes, chaque page de résultats devrait être extraite dans le même temps qu'il vous faudrait pour extraire une page dans le cadre du modèle séquentiel.

Ci-dessus : Exemple de données extraites de PagesJaunes.

Vous vous demandez peut-être s'il s'agit d'un clickbait ? Qu'est-ce que le mot "millionnaire" a à voir avec tout cela ? Eh bien, si vous avez suivi et que vous possédez maintenant un script fonctionnel, je peux ou non attester personnellement que rien ne vous empêche d'itérer théoriquement dans toutes les villes du Canada et d'extraire des Pages Jaunes toutes les inscriptions d'entreprises à partir d'une requête dans cette ville. Ces données peuvent littéralement avoir une valeur de plusieurs millions de dollars si elles sont correctement augmentées, mais ce sont aussi littéralement des millions d'entreprises dans leur annuaire qui sont maintenant à votre portée.

Si Pages Jaunes évoque des souvenirs d'une époque révolue, son potentiel de génération de leads B2B reste un trésor caché dans le paysage numérique. En naviguant dans les bizarreries de son interface web statique, l'extraction de données à partir de cette plateforme apparemment désuète dévoile un vaste éventail de pistes commerciales. La nature négligée et sous-exploitée des Pages Jaunes en fait une opportunité unique.

Mon seul objectif est que ce billet ne vous fasse pas penser que "le vrai trésor, ce sont les amis que nous nous sommes faits en chemin". J'espère avoir démontré les opportunités uniques qui existent, en particulier avec l'ensemble des compétences que beaucoup d'entre nous considèrent comme acquises, et aussi, je l'espère, avoir été une lecture intéressante pour ceux d'entre vous qui ont de l'expérience dans ce domaine, et avoir donné un aperçu à ceux d'entre vous qui n'en ont pas.

Comme toujours, soyez prudents, protégez-vous et, pour l'amour de Dieu, ne faites pas quelque chose où le FBI serait sur votre dos - dans ce cas, ce serait la GRC.

Ci-dessus : L'équivalent canadien du FBI - la GRC.