Partager cet article

Comme plus de 50 000 freelances, recevez des offres de mission tech à la messure de votre talent sur FreelanceRepublik.

Je m'inscris  ➔

Trouver des Freelances

Comme plus de 50 000 freelances, recevez des offres de mission tech à la messure de votre talent sur FreelanceRepublik.

En savoir +  ➔

Derniers articles

FreelanceRepublik

+100 missions tech
par semaine

Je m'inscris  ➔

A la recherche d'un freelance ?

Déposez gratuitement votre projet tech sur FreelanceRepublik

En savoir +  ➔
AccueilMarché de la techQu'est-ce que le web scraping ? Définition et usages

Qu’est-ce que le web scraping ? Définition et usages

Le web scraping, de part son fort enjeu métier, est de plus en plus utilisé par les entreprises. Permettant de faire des analyses poussées de concurrence ou du démarchage de masse, cette pratique stratégique a facilement trouvé sa place dans un monde ou la donnée règne.

Cette technique de collecte et de traitement d’informations de masse vous intéresse ? Vous voulez savoir comment cela fonctionne, et comment pratiquer vous-même le web scraping ?

Nous vous expliquons tout dans cet article !

Le web scraping : la définition

Le mot scraping vient du verbe anglais to scrape, qui signifie gratter. Et c’est plus ou moins ce que fait le web scraping (ou le scraping au sens général du terme) : gratter des données à partir d’une source tierce, pour en récupérer des informations spécifiques.

Précédé du mot web, le scraping vient donc chercher de la data à partir de sources internet, pour pouvoir exploiter ce qui en ressort à diverses fins, souvent commerciales. On peut par exemple imaginer un outil de web scraping récupérant les produits de concurrents d’un site e-commerce donné, pour adapter les prix en fonction de cette concurrence.

Le web scrapping est généralement utilisé sur d’importantes masses de données, trop importantes pour être traitées par des humains. On se rapproche alors du concept de Big Data.

Les étapes du web scraping

Pour aller un peu plus loin, et avant d’entrer dans la technique pure, nous devons comprendre de quoi se compose le web scraping. Nous pouvons découper cette technique en trois étapes : le fetching, le parsing, et l’exploitation.

Le fetching

Le fetching est un terme bien connu des développeurs web. Fetch (de l’anglais to fetch, aller chercher) est en effet le mot-clé courant pour désigner un appel serveur. C’est ici exactement le même principe : l’étape du fetching consiste à appeler des URL (via des GET) pour en récupérer le contenu brut.

Le parsing

Une fois ce contenu brut récupéré vient l’étape suivante : celle du parsing. Moins connu, le terme “parsing” est cependant tout de même familier des développeurs. Parser vient de l’anglais to parse, qui signifie analyser, ou décomposer. On vient donc ici analyser, trier les données récupérées, pour en extraire celles qui nous intéressent.

L’exploitation

Enfin, une fois ces données parsées, vient l’étape de l’exploitation. Ici, tout dépend du projet de scraping. En général, la data récupérée est stockée dans une base de données pour une utilisation ultérieure (comme l’exemple de la comparaison des prix, donnée plus haut). Cependant, ces données sont parfois utilisées “en temps réel”, pour envoyer des e-mails à une liste d’adresses électroniques scrapée, par exemple.

Le guide des tech leader 2.0 !
Une étude menée au travers de consultations des membres de la communauté Tech.Rocks, d'interviews de Tech Leaders ainsi que le point de vue des experts de la tech !

Les cas d’utilisation

Nous avons déjà donné un rapide exemple de l’utilisation du web scraping : l’analyse de la concurrence d’un commerce en ligne.

Mais les cas d’utilisation de cette pratique sont très nombreux, en voici d’autres :

  • la récupération de prospects, pour du démarchage ;
  • le suivi d’évolution des prix (typiquement pour de l’immobilier) ;
  • pour la recherche SEO (Search Engine Optimization) du classement de concurrents en fonction des mots-clés
  • le fetching de candidats, ou de leurs CV, à des fins de recrutement.

Comment faire du web scraping ?

Maintenant que nous avons vu ce qu’était et comment fonctionnait le scraping web, il est temps de rentrer dans la pratique !

Faire le point sur les besoins

Avant toute chose, et comme pour tout projet informatique, il est important de faire le point sur les besoins en scraping.

Quelles sont les types de sources ? Sont-elles facilement accessibles ? le fetching ou parsing nécessitent beaucoup de ressources ? Où et comment stocker les données parsées, si besoin ?

Voilà autant de questions auxquelles vous devez répondre avant de vous lancer dans le moindre développement.

Choisir les bonnes technos

Il est ensuite temps de choisir les technos à utiliser. Ici, deux facteurs principaux sont à prendre en compte :

  • les besoins, cités plus hauts, peuvent éventuellement imposer des technos spécifiques ;
  • vos connaissances et vos envies. Le web scraping étant possible avec pratiquement tous les langages, le choix de la stack techno reste avant tout subjectif.

Une fois la stack techno choisie, il convient de la mettre en place. Déploiement des serveurs ou de la base de données font par exemple partie des actions à lancer avant le développement.

Mettre au point les algorithmes de fetching, de parsing et d’exploitation

Maintenant que tout est prêt, nous pouvons nous lancer dans le développement de l’outil de web scraping. Cela inclut les trois étapes déjà évoquées : le fetching, le parsing et l’exploitation.

Chaque projet, de part ses besoins spécifiques et ses technos, impose ses propres règles. Ces algos et la façon dont ils vont être construits sont donc dépendants du produit à créer.

Exemple de web scraping : récupérer des offres d’emploi LinkedIn avec Node

exemple de code de web scraping en node js

Pour bien comprendre le fonctionnement technique du web scraping, le mieux est d’analyser un exemple concret.

Ici, le cas d’utilisation sera le suivant : la récupération d’offres d’emploi LinkedIn, selon certains critères, pour en créer un listing avec les informations importantes résumées. Ces informations seront ensuite ajoutées à une base de données.

Nous allons dérouler ici les trois étapes du scraping : le fetching, le parsing, et l’exploitation.

La technologie choisie pour l’exemple est Node, avec la bibliothèque native fetch pour les appels serveur, et Cheerio pour le parsing.

Le fetching

Le fetching consiste donc à faire des appels à certaines URL spécifiques pour en récupérer des données brutes. Nous allons ici rester dans la simplicité et ne montrer qu’un seul appel. En général, ces fetchs sont exécutés dans une boucle, avec différents paramètres à chaque fois.

Dans cet exemple, nous allons chercher des emplois en France contenant le mot-clé “développeur”.

// URL publique de LinkedIn
const LINKEDIN_FETCH_URL = 'https://www.linkedin.com/jobs-guest/jobs/api/seeMoreJobPostings/search?f_TPR=r604800&geoId=105015875&keywords=d%C3%A9veloppeur&location=France&refresh=true&start=0';

// Appel à l'URL, puis récupération des données sous format texte brut
const response = await fetch(LINKEDIN_FETCH_URL, { timeout: 30000 }).then(res => res.text())

Ici, en seulement deux lignes de code, nous récupérons, sous forme de texte, tout le contenu HTML retourné par la requête.

Le parsing

Le parsing étant généralement un peu plus complexe que le fetching, nous allons utiliser une bibliothèque pour nous y aider : Cheerio. Elle nous permettra de parser le contenu récupéré tout en gardant un code le plus propre possible :

// chargement du contenu texte via la fonction load de Cheerio
const $ = load(response);
const jobs = $('.base-card');

// si des jobs LinkedIn sont récupérés, nous bouclons dessus pour en récupérer les éléments qui nous intéressent
if (jobs != undefined && jobs != null && jobs.length) {
	jobs.each((index, element) => {
		const job = $(element);
		const jobTitle = $(job).find('h3.base-search-card__title').text().trim().replace(/['"]+/g, '') || '-';
		const companyName = $(job).find('h4.base-search-card__subtitle').text().trim() || '-';
		const link = $(job).find('a.base-card__full-link').attr('href') || '-';
	});
}

Comme nous l’avons dit, le code est ici légèrement plus complexe. Nous y utilisons diverses fonctions mises à disposition par Cheerio telles que load ou find, qui nous permettent de parcourir plus facilement le DOM HTML pour en ressortir certaines données spécifiques, telle que l’intitulé de l’offre d’emploi.

L’exploitation

Une fois ces éléments récupérés (dans cet exemple uniquement le titre du poste, l’entreprise et le lien vers l’annonce LinkedIn), nous pouvons exploiter ces données. Ici, nous allons simplement simuler la création d’un objet qui sera enregistré dans une base de données :

const dbJob = {jobTitle, companyName, link};
this._saveJobToDB(dbJob);

Et voilà ! Les offres d’emploi LinkedIn ont été fetchées, parsées et exploitées ! Nous venons de voir un exemple de web scraping simplifié, mais complet. Il ne vous reste qu’à adapter et faire évoluer ces morceaux de code en fonction de vos besoins.

Conclusion

Le web scraping est donc, pour résumer, une pratique de récupération de données en ligne. De plus en plus utilisée, cette technique qui se découpe en trois étapes (fetching, parsing et exploitation) a une forte composante métier, et donc stratégique.

Techniquement, bien que parfois complexe, il est relativement simple de mettre en place du web scraping, en suivant les étapes détaillées dans cet article.

X

Vous avez des besoins
en recrutement IT ?

Prenez RDV  ➔

Ces articles peuvent vous intéresser

Comment choisir le bon logiciel de gestion de données ?

Le volume croissant des données utilisées par les entreprises rend leur gestion de plus en plus complexe. Sans le...

Découverte du système de grille (Grid CSS)

La mise en page responsive constitue aujourd’hui un impératif pour tout site web qui se respecte. Pourtant, nombre de...

Les données structurées : Qu’est-ce que c’est ?

De nombreux propriétaires de sites web ne saisissent pas entièrement la définition des données structurées ni leur rôle concret...

Ne perdez plus de temps à prospecter en vain. Inscrivez-vous gratuitement sur FreelanceRepublik, et recevez de belles offres de missions tech. FreelanceRepublik est gratuit pour les freelances.

Je m'inscris  ➔