? Voici les possibilités qui s'offrent à vous :","Crunchbase","A propos de nous","Merci à tous pour votre formidable soutien !","Liens rapides","Programme d'affiliation","Prime","ProxyScrape essai premium","Vérificateur de procuration en ligne","Types de mandataires","Pays mandataires","Cas d'utilisation du proxy","Important","Politique en matière de cookies","Clause de non-responsabilité","Politique de confidentialité","Conditions d'utilisation","Médias sociaux","Facebook","LinkedIn","Twitter","Quora","Télégramme","Discord","\n © Copyright 2024 - Thib BV | Brugstraat 18 | 2812 Mechelen | Belgique | VAT BE 0749 716 760\n"]}
~ 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".
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:
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.
"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.
"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 Néandertaliens, 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 ?!?
Shown Above: YellowPages Canada’s landing page, the unfortunate victim of this post.
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".
Shown Above: YellowPages Canada’s listing results page.
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).
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.
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.
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.
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-utilisé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.