Académique Documents
Professionnel Documents
Culture Documents
Installation
Depuis votre environnement virtuel, exécutez la commande suivante :
Si tout s’est bien passé, vous pouvez désormais importer le package dans l’interprétaur python :
>>> bs4.__version__
'4.7.1'
Premiers pas
La classe bs4.BeautifulSoup permet de créer un objet Python représentant un document HTML.
Une manière de créer un tel objet est de passer simplement le code HTML (une chaîne de
caractères ou d’octets) :
... <ul>
... </ul>
... """)
Inspecter le document
Cet objet possède une méthode select qui prend en paramètre un sélecteur CSS, et retourne la
liste des éléments HTML vérifiant ce sélecteur :
https://perso.liris.cnrs.fr/pierre-antoine.champin/2019/progweb-python/annexes/a3_beautiful_soup.html 1/3
01/09/2021 Le package python Beautiful Soup — documentation Programmation Web pour la bio-informatique
>>> doc.select('li')
>>> doc.select('a')
[<a href="tata">lien</a>]
On peut également accéder au premier élément d’un type donné, en utilisant le nom de balise
comme attribut de l’objet document :
>>> doc.li
<li>Premier élément</li>
>>> doc.a
>>> doc.p
Chaque élément récupéré par les méthodes ci-dessus possède les attributs suivants :
Exemples :
>>> doc.p.contents
>>> doc.p.contents[1].name
'a'
>>> doc.p.contents[1]['href']
'tata'
>>> doc.p.contents[1].string
'lien'
Homogénéité
L’objet document et les objets éléments sont en fait homogènes entre eux. Ils possèdent les
mêmes attributs et méthodes.
On peut notamment utiliser la méthode select sur un élément, ou un attribut ayant le nom d’une
balise, pour rechercher à l’intérieur de cet élément :
https://perso.liris.cnrs.fr/pierre-antoine.champin/2019/progweb-python/annexes/a3_beautiful_soup.html 2/3
01/09/2021 Le package python Beautiful Soup — documentation Programmation Web pour la bio-informatique
>>> doc.ul.select('a')
>>> doc.ul.li
<li>Premier élément</li>
Les chaînes de caractère retournées par string ou contents sont également partielement
homogènes à des éléments. Elles possèdent notamment un attribut name (qui vaut toujours None )
et un attribut string (qui retourne la chaîne elle-même). En revanche, elle n’ont pas
d’attribut contents . Cette homogénéité facilite toutefois le traitement systématique des valeurs
retournées par l’attribut contents d’un élément :
... if e.string:
... else:
...
>>> full_text(doc)
https://perso.liris.cnrs.fr/pierre-antoine.champin/2019/progweb-python/annexes/a3_beautiful_soup.html 3/3
01/09/2021 Connexion à une base de données — documentation Programmation Web pour la bio-informatique
https://docs.python.org/fr/3.6/library/sqlite3.html
Ce qui suit est valable pour de nombreux types d’objets ayant une méthode close ou
équivalente, pas uniquement pour les connexions à une base de données.
Il est important de fermer la connexion quoi qu’il arrive, y compris si une exception est levée. C’est
pourquoi il faut normalement appeler la méthode close dans la clause finally` d'un bloc ``try :
conn = sqlite3.connect('example.db')
try:
c = conn.cursor()
conn.commit()
finally:
conn.close()
conn.commit()
Note
De plus en plus d’objets en Python supportent nativement la clause with ; dans ce cas, il n’est
pas nécessaire d’encapsuler l’appel avec closing(...) . C’est notamment le cas de l’objet
retourné par sqlite3.connect .
https://perso.liris.cnrs.fr/pierre-antoine.champin/2019/progweb-python/annexes/a4_dbapi.html 1/2
01/09/2021 Connexion à une base de données — documentation Programmation Web pour la bio-informatique
c = conn.cursor()
conn.commit()
https://perso.liris.cnrs.fr/pierre-antoine.champin/2019/progweb-python/annexes/a4_dbapi.html 2/2