Python - Lecture de pages HTML

bibliothèque connue sous le nom de beautifulsoup. En utilisant cette bibliothèque, nous pouvons rechercher les valeurs des balises html et obtenir des données spécifiques comme le titre de la page et la liste des en-têtes de la page.

Installez Beautifulsoup

Utilisez le gestionnaire de packages Anaconda pour installer le package requis et ses packages dépendants.

conda install Beaustifulsoap

Lire le fichier HTML

Dans l'exemple ci-dessous, nous faisons une demande à une URL à charger dans l'environnement python. Utilisez ensuite le paramètre de l'analyseur html pour lire l'intégralité du fichier html. Ensuite, nous imprimons les premières lignes de la page html.

import urllib2
from bs4 import BeautifulSoup

# Fetch the html file
response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()

# Parse the html file
soup = BeautifulSoup(html_doc, 'html.parser')

# Format the parsed html file
strhtm = soup.prettify()

# Print the first few characters
print (strhtm[:225])

Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant.

<!DOCTYPE html>
<!--[if IE 8]><html class="ie ie8"> <![endif]-->
<!--[if IE 9]><html class="ie ie9"> <![endif]-->
<!--[if gt IE 9]><!-->
<html>
 <!--<![endif]-->
 <head>
  <!-- Basic -->
  <meta charset="utf-8"/>
  <title>

Extraction de la valeur de la balise

Nous pouvons extraire la valeur de la balise de la première instance de la balise en utilisant le code suivant.

import urllib2
from bs4 import BeautifulSoup

response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()

soup = BeautifulSoup(html_doc, 'html.parser')

print (soup.title)
print(soup.title.string)
print(soup.a.string)
print(soup.b.string)

Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant.

Python Overview
Python Overview
None
Python is Interpreted

Extraction de toutes les balises

Nous pouvons extraire la valeur de la balise de toutes les instances d'une balise en utilisant le code suivant.

import urllib2
from bs4 import BeautifulSoup

response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()
soup = BeautifulSoup(html_doc, 'html.parser')

for x in soup.find_all('b'): print(x.string)

Lorsque nous exécutons le code ci-dessus, cela produit le résultat suivant.

Python is Interpreted
Python is Interactive
Python is Object-Oriented
Python is a Beginner's Language
Easy-to-learn
Easy-to-read
Easy-to-maintain
A broad standard library
Interactive Mode
Portable
Extendable
Databases
GUI Programming
Scalable