1. Prodotti
  2.   HTML
  3.   Python
  4.   Beautiful Soup
 
  

Libreria Python Open Source per Analizzare HTML/XML ed Estrarre Dati

Beautiful Soup è una delle principali librerie Python open source di parsing che analizza HTML/XML disordinati, estrae testo/link, naviga l'albero e alimenta i moderni flussi di lavoro di web scraping.

Che cos'è Beautiful Soup?

Il web scraping è diventato una competenza essenziale per data scientist, sviluppatori e ricercatori che hanno bisogno di estrarre informazioni preziose dai siti web. Beautiful Soup è una delle librerie Python più popolari e facili da usare per l'analisi di documenti HTML e XML. Dalla sua creazione nel 2004, questo potente strumento ha fatto risparmiare agli sviluppatori innumerevoli ore nei progetti di web scraping. L'API intuitiva della libreria, l'eccellente documentazione e il supporto attivo della community garantiscono che sia i principianti sia gli sviluppatori esperti possano estrarre dati web in modo efficiente.

Beautiful Soup è una libreria Python progettata specificamente per estrarre dati da file HTML e XML. È una potente libreria Python che dal 2004 salva gli sviluppatori ore o giorni di lavoro nei progetti di web scraping. Con poche righe di codice, è possibile eseguire query complesse, come semplicità e facilità d'uso, trovare tutti i collegamenti, estrarre il contenuto testuale, conversione automatica della codifica, flessibilità del parser, gestione robusta degli errori, ricerca ed estrazione di link dalle pagine web e molto altro.

La libreria Beautiful Soup trasforma il compito spesso frustrante di estrarre dati da documenti HTML e XML in un processo Pythonico semplice, convertendo contenuti web mal strutturati in alberi di parsing ordinati che è possibile navigare e cercare con metodi semplici. Ciò che tradizionalmente richiederebbe ore di codifica manuale può essere realizzato in minuti con Beautiful Soup. Rimane lo standard del settore per gli sviluppatori Python che si avvicinano al mondo del web scraping. La sua semplicità, combinata con la potenza di diversi parser, la rende una scelta imbattibile per estrarre dati da siti web statici.

Previous Next

Iniziare con Beautiful Soup

Il modo consigliato e più semplice per installare Beautiful Soup è utilizzare pip. Si prega di usare il comando seguente per un'installazione fluida.

Installa la libreria Beautiful Soup tramite pip

pip install beautifulsoup4 

È possibile installarlo anche manualmente; scarica i file dell'ultima versione direttamente dalla pagina web Beautiful Soup .

Lavorare con più parser

La libreria Beautiful Soup non esegue tutta l'analisi da sola — invece, si appoggia a parser maturi come l'html.parser integrato in Python, il veloce parser lxml e l'html5lib simile a un browser. A seconda delle esigenze, è possibile dare priorità alla velocità o alla conformità agli standard. Questa architettura offre flessibilità nella scelta del parser più adatto alle proprie necessità, permette di scambiare velocità di parsing con flessibilità, di provare diverse strategie di parsing senza modificare il codice di Beautiful Soup, e così via. Il seguente semplice codice mostra come gli sviluppatori possano utilizzare parser diversi con Beautiful Soup.

Come utilizzare più parser per analizzare documenti HTML all'interno delle app Python?

# Using different parsers with Beautiful Soup
html_doc = "

Contenuto di esempio

" # Using lxml parser (fast) soup_lxml = BeautifulSoup(html_doc, 'lxml') # Using html5lib parser (slower but more lenient) soup_html5lib = BeautifulSoup(html_doc, 'html5lib') # Using Python's built-in parser soup_builtin = BeautifulSoup(html_doc, 'html.parser')

Estrazione di link dalle pagine web

Il scraping dei link è un'operazione comune di web scraping, particolarmente utile per costruire crawler web. La libreria open source Beautiful Soup include il supporto per caricare pagine web ed estrarre i link al loro interno nelle applicazioni Python. Il seguente semplice esempio di codice dimostra come recuperare una pagina web live usando la libreria requests, quindi estrarre tutti i tag di ancoraggio nelle applicazioni Python.

Come estrarre i collegamenti dalle pagine web usando Python?

from bs4 import BeautifulSoup
import requests

# Fetch a real webpage
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# Extract all links
links = soup.find_all('a')

print(f"Found {len(links)} links:")
for link in links:
    href = link.get('href')
    text = link.get_text().strip()
    print(f"Text: {text} | URL: {href}")

# Filter links by criteria
external_links = []
for link in soup.find_all('a'):
    href = link.get('href')
    if href and href.startswith('http'):
        external_links.append(href)

print(f"\nFound {len(external_links)} external links")

Ricerca di elementi HTML specifici

Uno dei maggiori punti di forza di Beautiful Soup è la sua capacità di permettere di cercare nell'HTML in modo naturale, quasi come leggere l'inglese semplice. Invece di dover gestire complesse API DOM, descrivi ciò che ti serve e Beautiful Soup lo trova per te. Supponiamo che tu voglia trovare tutti i link su una pagina. Puoi usare il metodo find_all come mostrato nel seguente esempio di codice. Il metodo restituisce una lista di tutti i tag di link. Poi iteriamo su di essi per estrarre l'URL e il testo e ottenere il nome visibile del link usando l'API Python.

Come cercare ed estrarre un elemento HTML specifico da una pagina web tramite l'API Python?

# Extract all anchor tags
links = soup.find_all('a')

for link in links:
    href = link.get('href')
    text = link.text.strip()
    print(f"Text: {text} | URL: {href}")

Gestione automatica della codifica

Una delle funzionalità più comode di Beautiful Soup è la conversione automatica della codifica. La libreria converte automaticamente i documenti in ingresso in Unicode e i documenti in uscita in UTF-8, eliminando uno dei problemi più comuni nello scraping web. Ricorda che devi preoccuparti delle codifiche solo quando il documento non specifica una codifica, poiché Beautiful Soup non può rilevarla automaticamente. In questi rari casi, devi semplicemente specificare manualmente la codifica originale.

 Italiano