Beautiful Soup - Souping the Page
Nell'esempio di codice precedente, analizziamo il documento tramite un bellissimo costruttore utilizzando un metodo stringa. Un altro modo è passare il documento attraverso il filehandle aperto.
from bs4 import BeautifulSoup
with open("example.html") as fp:
soup = BeautifulSoup(fp)
soup = BeautifulSoup("<html>data</html>")
Prima il documento viene convertito in Unicode e le entità HTML vengono convertite in caratteri Unicode: </p>
import bs4
html = '''<b>tutorialspoint</b>, <i>&web scraping &data science;</i>'''
soup = bs4.BeautifulSoup(html, 'lxml')
print(soup)
Produzione
<html><body><b>tutorialspoint</b>, <i>&web scraping &data science;</i></body></html>
BeautifulSoup quindi analizza i dati utilizzando un parser HTML o gli si dice esplicitamente di analizzare utilizzando un parser XML.
Struttura ad albero HTML
Prima di esaminare i diversi componenti di una pagina HTML, dobbiamo prima comprendere la struttura ad albero HTML.
L'elemento radice nell'albero del documento è l'html, che può avere genitori, figli e fratelli e questo determina dalla sua posizione nella struttura ad albero. Per spostarsi tra elementi HTML, attributi e testo, è necessario spostarsi tra i nodi nella struttura ad albero.
Supponiamo che la pagina web sia come mostrato di seguito:
Che si traduce in un documento html come segue:
<html><head><title>TutorialsPoint</title></head><h1>Tutorialspoint Online Library</h1><p<<b>It's all Free</b></p></body></html>
Il che significa semplicemente che, per il documento html sopra, abbiamo una struttura ad albero html come segue: