Commencer avec beautifulsoup

Installation ou configuration

[pip][1] peut être utilisé pour installer BeautifulSoup. Pour installer la version 4 de BeautifulSoup, exécutez la commande :

pip install beautifulsoup4

Sachez que le nom du package est beautifulsoup4 au lieu de beautifulsoup, ce dernier nom représentant l’ancienne version, voir [old beautifulsoup][2]

[1] : https://pypi.python.org/pypi/pip [2] : https://pypi.python.org/pypi/BeautifulSoup

Un exemple de grattage BeautifulSoup “Hello World”

from bs4 import BeautifulSoup
import requests

main_url = "https://fr.wikipedia.org/wiki/Hello_world"
req = requests.get(main_url)
soup = BeautifulSoup(req.text, "html.parser")

# Finding the main title tag.
title = soup.find("h1", class_ = "firstHeading")
print title.get_text()

# Finding the mid-titles tags and storing them in a list.
mid_titles = [tag.get_text() for tag in soup.find_all("span", class_ = "mw-headline")]

# Now using css selectors to retrieve the article shortcut links
links_tags = soup.select("li.toclevel-1")
for tag in links_tags:
    print tag.a.get("href")

# Retrieving the side page links by "blocks" and storing them in a dictionary
side_page_blocks = soup.find("div",
                            id = "mw-panel").find_all("div",
                                                      class_ = "portal")
blocks_links = {}
for num, block in enumerate(side_page_blocks):
    blocks_links[num] = [link.get("href") for link in block.find_all("a", href = True)]

print blocks_links[0]

Production:

"Hello, World!" program
#Purpose
#History
#Variations
#See_also
#References
#External_links
[u'/wiki/Main_Page', u'/wiki/Portal:Contents', u'/wiki/Portal:Featured_content', u'/wiki/Portal:Current_events', u'/wiki/Special:Random', u'https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en', u'//shop.wikimedia.org']

La saisie de votre analyseur préféré lors de l’instanciation de Beautiful Soup évite l’avertissement habituel déclarant qu’aucun analyseur n’a été explicitement spécifié.

Différentes méthodes peuvent être utilisées pour trouver un élément dans le arborescence de pages Web.

Bien qu’il existe une poignée d’autres méthodes, les “classes CSS” et les “sélecteurs CSS” sont deux moyens pratiques de rechercher des éléments dans l’arborescence.

Il convient de noter que nous pouvons rechercher des balises en définissant leur valeur d’attribut sur True lors de leur recherche.

get_text() nous permet de récupérer le texte contenu dans une balise. Il le renvoie sous la forme d’une seule chaîne Unicode. tag.get("attribute") permet de récupérer la valeur de l’attribut d’une balise.