Le webscraping consiste à extraire les données d’un site web de façon structurée. C’est une méthode utile dans beaucoup de situations :
- Générer des fichiers de prospection,
- Enrichir un jeu de données,
- Personnaliser l’expérience client automatiquement, etc.
Dans cet article, nous allons vous présenter 10 méthodes et outils pour faire du webscraping. De l’éternel copier-coller (qui fonctionne beaucoup mieux qu’on ne le croit), aux méthodes plus complexes pour de plus gros projets. 7 de ces 10 méthodes ne demandent aucune connaissance (ou presque) préalable.
Sommaire
#1. Copier – coller
Ca peut paraitre bête, mais on oublie souvent comme le copier-coller fonctionne bien. Vous pouvez copier-coller l’intégralité des tableaux qui sont sur Wikipedia dans un fichier Excel ou un Google Spreadsheet, par exemple. Si vous cherchez des codes postaux, des prénoms communs, des indicatifs téléphoniques, c’est l’affaire d’une minute avec cette méthode. Ce travail prend littéralement 1 minute, et je me suis repris plusieurs fois à chercher un pattern compliqué sur un tableau ou une grille, alors qu’un copier-coller faisait l’affaire. Automatiser c’est bien, mais cela prend parfois beaucoup plus de temps qu’une méthode aussi simple et efficace que le copier-coller.
- Extrêmement facile d’utilisation,
- Très rapide à faire.
- Très limité.
#2. CaptainData
Captain Data c’est un outil qui permet de se concentrer sur l’important: ils se chargent de la technique. En quelques clics, vous pouvez récupérer les données depuis un catalogue des principaux sites qu’on aurait envie de scraper:
- Linkedin, SalesNavigator, et Facebook (une mine d’or pour trouver des mails génériques)
- Twitter, Instagram, crunchbase, indeed, societe.com
- Leboncoin, les pages jaunes, trip advisor, la fourchette…
Pour chacune de ces plateformes, Captain Data vous propose des scénarios, souvent assez malins et orientés business. En quelques clics, vous mettez la machine en route, et vos leads commencent à tomber.
Dans certains cas (Linkedin notamment), l’outil permet même d’interagir avec la plateforme: envoyer des demandes de connexion, etc.
Le (gros) bonus: L’outil s’intègre avec les meilleurs email finders du marché et permet de créer des scénarios complets d’enrichissement. Par exemple:
- Trouver des leads en fonction de leur “Job title” sur google
- Enrichir ces contacts avec des informations Linkedin et / ou Sales Navigator
- Trouver un email validé pour chacun de ces contacts avec dropcontact
En quelques minutes, vous avez créé une machine de guerre de lead generation.
La simplicité a un prix: ça commence à 100€ / mois pour aller jusqu’à 3 workflows, et 20 000 actions / mois, puis les tarifs sont dégressifs. Si vous voulez des résultats rapidement, c’est un excellent compromis.
#3. LinkClump : scraper des liens et des titres en 2 minutes chrono
LinkClump fait partie des meilleures extensions Chrome pour booster vos ventes. Son utilisation est un jeu d’enfant ! Grâce à LinkClump, vous pouvez :
- Récupérer des liens et leurs titres très facilement,
- Sélectionner uniquement les liens importants sur une page donnée,
- Télécharger des banques d’images ou de fichier (en combinaison avec TabSave).
Si on cherche un peu, on se rend compte qu’il y a énormément d’éléments qui sont en fait uniquement des liens sur des pages Web pour des raisons d’optimisation SEO. Par exemple, la plupart des annuaires mettent un lien vers une page enfant sur tous leurs titres. Grâce à LinkClump, vous pouvez donc récupérer les URLs & titres de toutes ces pages en un rien de temps. Le cas d’usage le plus commun est la page de résultats google, mais on peut en trouver plein d’autres.
- Extrêmement facile d’utilisation,
- Une extension Chrome facilement accessible et très peu encombrante.
- Vous pouvez télécharger une grande quantité de données en un rien de temps.
- Assez limité
#4. TabSave : scraper une banque d’images ou de fichiers
Les banques d’images ou de fichiers se présentent généralement sous la forme d’une image avec un lien vers la source, là aussi pour faire attention au SEO. On peut donc utiliser LinkClump pour récupérer tous les liens des sources. C’est là que TabSave entre en jeu. Il suffit de coller tous ces liens dans TabSave, et de cliquer sur “Download”. Assez puissant pour récupérer de grandes quantités de fichiers media sur le web.
Le conseil Salesdorado
Allez sur chrome://settings/?search=downloads. Sous Downloads > Location, précisez un dossier cible créé pour l’occasion. Tous les fichiers téléchargés par votre navigateur iront maintenant dans ce dossier. Un bon moyen d’éviter d’encombrer votre dossier Téléchargements. A condition de penser à rétablir le dossier par défaut après l’opération.
- Se combine parfaitement ave LinkClump,
- Vous n’avez rien à faire, à part appuyer sur télécharger pour obtenir vos données.
- Attention à ne pas charger trop d’URLs à chaque fois. Quand ça plante, ça plante bien.
#5. Google Spreadsheets : en-dessous de 1000 lignes, mais avec des éléments un peu compliqués à récupérer
Là encore, un cas d’usage un peu “bête”, mais Google Spreadsheets permet de faire énormément de choses grâce à la fonction ImportXML. Grâce à la syntaxe XPath (très importante en webscraping, et pas spécifique à cet usage par Google Spreadsheets), on peut obtenir n’importe quel élément d’une page web très facilement.
Vous pouvez faire du scraping assez facilement en utilisant xPath, Google Sheets et la fonction =importxml. Même si cela ne permet pas un usage à grande échelle, les requêtes xPath permettent de récupérer des données structurées dans les contenus des pages web.
Vous pouvez, par exemple, récupérer tous les titres H2 de l’article que vous êtes en train de lire en écrivant =importxml(“https://salesdorado.com/automatisation/meilleurs-outils-webscraping/”, “//h2”) dans une cellule d’une feuille de calcul Google Sheets.
C’est ce qu’on utilise dans le lead scorer de Salesdorado pour obtenir le titre de la homepage du domaine associé à l’adresse email d’un contact.
Le conseil Salesdorado
A noter que le fait de passer par une Spreadsheet ouvre la porte à des process dynamiques pour rafraîchir ou enrichir vos données de façon dynamique.
- Beaucoup plus flexible
- Peut être utilisé en flux (et pas uniquement en “batch”)
- Demande une connaissance du Xpath (s’acquiert assez vite).
- Difficilement viable au delà de 1000 lignes.
#6. WebScraper : pour les novices qui s’attaquent à de gros morceaux (plus de 1000 lignes)
Webscraper est un outil no-code, assez simple d’utilisation, qui permet en réalité d’aller assez loin. Il faudra être patient pour créer les patterns et l’exécution du scrapping elle-même est … très lente. Mais le résultat est là, les tutoriels sont faciles à prendre en main (même sans avoir écrit une ligne de code dans sa vie), et on peut faire des choses un peu plus sérieuses :
- Pagination,
- Interactions avec la page, etc.
- Simple à utiliser et assez puissant
- Pas de Xpath à écrire
- Assez lent, à la fois pour configurer, et pour exécuter
#7. SpiderPro : pour les novices qui ont 38$ à mettre
Spider Pro est l’un des outils les plus simples d’utilisation pour effectuer du scraping sur Internet. Il vous suffit de cliquer sur ce qui vous intéresse afin de transformer les sites Web en données organisées, avant de pouvoir les télécharger au format JSON / CSV. Un outil parfait pour automatiser votre prospection commerciale. C’est un outil similaire à Webscraper à une différence près : le téléchargement de Spider Pro vous coûtera 38$ (paiement unique).
- Très facile d’utilisation
- Beaucoup plus rapide à configurer que webScraper
- C’est un outil payant
#8. Apify : pour scraper entre 1000 et 10000 lignes – Petite culture web requise (no-code)
Nous avons déjà parlé d’Apify dans nos outils de prospection par email, pour l’email finder de Salesdorado.
Apify est une plateforme qui permet d’exécuter du code à moyenne échelle, sans avoir à gérer quoique ce soit sur le setup serveur. Parfois superflu, mais souvent précieux pour s’éviter des logiques de rotation d’IP etc. Surtout, Il y a une librairie très complète de ce qu’ils appellent des “acteurs” – c’est à dire des bots pré-configuréss pour les cas d’usage les plus courants. Grâce à Apify vous :
- Gagnerez un temps monstrueux,
- Obtiendrez des performances sans commune mesure avec PhantomBuster (10 fois plus rapide sur Apify environ d’après notre expérience),
- Dépenserez très peu.
De plus, Apify permet de mettre vos bots en flux dans vos process (via leur API) pour enrichir ou rafraichir vos datasets de façon dynamique.
A noter que vous pouvez utiliser Apify gratuitement jusqu’à 10h machine par mois. Apify propose un forfait à 49$ par mois pour 100h machine où vos données seront stockées pendant 14 jours. Pour 149$ par mois, vous aurez 400h machine. Enfin, le forfait Business à 499$ par mois vous permettra d’avoir 2000 heures machine par mois.
- Facile d’utilisation,
- Vous fera gagner du temps
- Nécessite une assez bonne culture du web a minima.
#9. Scrapy : pour aller vite, et fort
Scrapy est un peu une référence pour tous ceux qui ont déjà écrit du Python. C’est un framework qui permet de scraper rapidement et facilement. Vous pouvez l’exécuter en local, sur vos serveurs / lambdas, ou sur scrapy cloud. La grosse limite, c’est pour les pages générées en Javascript, un usage de plus en plus fréquent. Dans ce cas là, Scrapy recommande (justement) de chercher les sources de données directement en utilisant le “Network” de votre navigateur.
L’idée est que la page est bien forcée d’exécuter une requête pour obtenir la donnée à afficher, et qu’il est en fait très souvent possible de faire cette requête directement. Cependant, cela n’est pas toujours possible. Il reste alors une solution, beaucoup plus lourde : exécuter le Javascript avec un navigateur.
- Un outil de référence pour les amateurs de Python
- Framework très efficace & bien documenté
- Limite concernant les pages générées en Javascript
#10. Pour les plus gros projets : Puppeteer ou Selenium
Le problème des pages générées en Javascript de façon dynamique est de plus en plus commun, et si on ne peut pas appeler la source de données directement (403 en général), on n’a plus qu’une solution : passer par un navigateur. Pensez quand même à vérifier qu’un bot n’a pas déjà été écrit par quelqu’un sur Apify (ou ailleurs), ça marche assez régulièrement et ça évite des soucis.
Pour ça, chez Salesdorado, on utilise Puppeteer en NodeJS car c’est très simple à écrire et remarquablement bien documenté. Les amateurs de python iront plutôt sur Selenium. Pour l’exécution, vous avez deux options :
- Vous appelez beaucoup de sites, peu de fois chacun : trouvez-vous un endroit avec un bon débit Internet, et lancez tout en local. Vous gagnerez des heures d’ennuis, et quelques euros.
- Vous appelez un seul site, beaucoup de fois : c’est le cas le plus embêtant, et le plus courant aussi. Regardez du côté d’AWS Lambda pour gérer la rotation d’IPs sans avoir à le faire (les lambdas utilisent une IP différente à chaque exécution, en dessous d’une certaine fréquence d’appels). Pour les petits projets, Apify peut être une option, mais ça peut vite coûter cher.
- Puissant, permet de passer sur à peu près tous les sites
- Coûteux à mettre en place (en temps ou en argent).
- Connaissances préalables requises