BeautifulSoup

BeautifulSoup est un package python, qui utilise un parser (un analyseur syntaxique) – écrit en Python pour parcourir un arbre d’éléments X(HTML) afin d’effectuer des recherches ou des modifications au sein de cet arbre.

BeautifulSoup (BS4) est le parser X(Html) que j’ai retenu. J’ai longuement hésité à utiliser Scrapy (à qui je consacrerai aussi un post) mais BS4 à l’avantage de la simplicité et de la compatibilité avec Python 3 (ce qui n’était pas le cas de Scrapy lorsque j’ai commencé le projet même si pour l’instant je travaille avec Python 2.7…)

Parce que je travaille sur Mac avec l’OS X El Capitan, l’installation de BS4 n’a pu se faire de façon simple (j’y reviendrai). Il m’a fallu utiliser virtualenvwrapper.

Une fois, tous les problèmes d’installation résolus et un apprentissage rapide avec ce tutoriel et un test à partir avec le fichier exemple 43rd-congress BS4 se révèle être très simple d’utilisation et répondre parfaitement à mes attentes.

Je commente ci-dessous un test qui permet d’extraire les liens du site www.scandles.fr 

import requests
from bs4 import BeautifulSoup

u = "http://www.scandles.fr"
html = requests.get(u)
data = html.content
bsObj = BeautifulSoup(data)
links=bsObj.findAll("a")

requests est une bibliothèque HTTP

Requests is an elegant and simple HTTP library for Python, built for human beings.

bs4 est la bibliothèque BeautifulSoup

Après avoir fait un get pour obtenir la page et extrait le content, il ne reste plus qu’à le passer à BS4 pour en faire un objet qu’on pourra parser avec la librairie.

Si vous testez cet exemple, avec votre propre URL (remplacez u par ce que vous voulez) alors vous verrez que links contient tous les liens de votre page.

Le moteur www.les-bougies.com utilise BS4 pour parser tous les sites de bougies parfumées (voir article précédent)

Pour une introduction au Scraping du Web avec Python, je vous recommande ce livre chez O’Reilly : Web Scraping with Python

 

 

Une réflexion sur « BeautifulSoup »

Laisser un commentaire