Cette page expliqe comment télécharger et parser une page HTML en Python à partir de son URL afin de récupérer les méta données, le titre, la description et les liens. Vous pouvez tester cet exemple en ligne sur replit.
Les codes Python de cette page utilise les bibliothèquesBeautifulSoup et request.
from bs4 import BeautifulSoup
import requests
La première étape consiste à télécharger le code HTML à partir d'une URL :
url = 'https://url-example.com/'
r = requests.get(url, allow_redirects=True)
print (r.text)
Pour parser le HTML, il faut dans un premier temps convertir le code en
objet BeautifulSoup
, qui représenter le document sous la forme d'une structure de
données adéquate.
soup = BeautifulSoup(r.text, features="html5lib")
Pour obtenir le titre de la page (dans els méta données, celui qui apparait dans l'onglet du navigateur)
il convient de rechercher la balise title
:
# Get header page title
title = soup.find('title')
print (title.string)
Pour obtenir le titre de la page (celui qui apparait dans la page), il faut alors rechercher
la balise h1
:
title = soup.find('h1')
print (title.string)
Pour obtenir la description de la page depuis les méta-données, il faut rechercher la méta-balise description
:
description = soup.find("meta", attrs={'name':'description'})
print (description["content"])
Pour obtenir la description au format open graph, remplacer la propriété name:description
par og:description
:
description = soup.find("meta", property="og:description")
if (description is not None):
print (description)
Pour récupérer tous les liens, il faut chercher toutes les balises a
et pour chaque,
il faudra récupérer la propriété href
:
for link in soup.findAll('a'):
print (link.get('href'))