Il existe plusieurs outils et façons d'extraire des données d'un site Web, mais cet article va traiter sur une méthode assez connue en Python. Il s'agit de la librairie Beautiful Soup qui est un analyseur HTML.
Pour ce faire, il faut d'abord installer Beautiful Soup en ouvrant un terminal tel que Git Bash et saisir la commande suivante:
python -m pip install beautifulsoup4
Ensuite, ouvrir un éditeur de texte pour écrire un petit programme Python de base et saisir ces quelques lignes:
from bs4 import BeautifulSoup
from urllib.request import urlopen
url = "http://olympus.realpython.org/profiles/dionysus"
page = urlopen(url)
html = page.read().decode("utf-8")
soup = BeautifulSoup(html, "html.parser")
Ce programme fait trois opérations:
Il ouvre le lien spécifié dans la variable url
en utilisant la méthode urlopen()
provenant du module urllib.request
Il lit le code HTML de la page fournie comme chaîne de caractères et l'assigne à la variable html
Il crée un objet BeautifulSoup
et l'assigne à la variable soup
Il faut sauvegarder le fichier en format Python et exécuter le programme à partir d'un terminal. Dans l'exemple fourni ci-dessous, le fichier du programme a été nommé beautiful_soup.py
Taper la commande python -i beautiful_soup.py
. Ensuite, pour afficher le texte extrait du lien URL fourni dans le programme et qui est contenu dans la variable soup
, taper print(soup.get_text())
. Ceci va afficher les données extraites.

On peut aussi trouver toutes les instances d'une balise HTML spécifique. Par exemple, on peut essayer de trouver toutes les images contenues dans les balises img
en saisissant la commande suivante dans le terminal: soup.find_all("img")

Cela nous retourne deux liens d'images, car deux images se trouvent dans le lien URL du programme Python.
Certaines balises dans les documents HTML peuvent être accédées par les propriétés de l'objet Tag
. Par exemple, on peut obtenir la balise <title>
dans un document en utilisant la propriété .title

Si l'on veut simplement extraire la chaîne de caractères contenue dans la balise <title>
, il suffit d'utiliser la propriété .string
de l'objet Tag
:

Les analyseurs HTML tels que Beautiful Soup sont des bons outils qui peuvent nous faire gagner du temps pour trouver des données spécifiques dans des pages Web. Par contre, ils nous donnent peu de flexibilité quant à l'extraction des données de formulaires HTML. Pour cela, il faudra trouver d'autres moyens pour arriver à ses fins. C'est la raison pour laquelle il existe plusieurs façons de faire du web scraping, car c'est selon les besoins spécifiques d'un utilisateur.
Commentaires1
C'est un article très…
C'est un article très intéréssant.
Cette technique qui a été utilisé une fois dans le cardre dans l'OSINT dans la cybersécurité s'est rendu un outil efficace pour l'extraction (illégal certains argumentent) des données pour entrainer les LLMs.
Hâte d'apprendre plus sur ce sujet.