Come estrarre i link da una pagina html in Python

Per estrarre i link da un documento HTML con il linguaggio Python, posso usare la combinazione di moduli requests e BeautifulSoup

Questo codice automatizza il processo che un utente svolge manualmente: apre la pagina, ispeziona il codice sorgente per cerca i collegamenti ipertestuali (tag <a>) e restituisce l'elenco dei link trovati nella pagina.

import requests
from bs4 import BeautifulSoup

url = "https://www.andreaminini.net/python/
response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')

# Estrai tutti i link
for link in soup.find_all('a', href=True):
    print(link['href'])

E' un semplice esempio di web scraping, ovvero un processo automatizzato che estrae informazioni da una pagina web. Vediamo in dettaglio come funziona, riga per riga.

Lo script importa le librerie requests e BeautifulSoup.

  • requests
    Questa libreria viene utilizzata per fare richieste HTTP. Nel contesto del web scraping, `requests` è spesso usato per scaricare il contenuto di una pagina web.
  • BeautifulSoup
    È una libreria utilizzata per analizzare (o "parsing") documenti HTML e XML. Permette di navigare e manipolare facilmente l'albero DOM della pagina web.

La variabile `url` contiene l'indirizzo della pagina web che voglio analizzare.

url = "https://www.andreaminini.net/python/

Il metodo requests.get(url) effettua una richiesta GET a quell'URL.

Se la richiesta ha successo, il server risponde con il contenuto della pagina web, che viene memorizzato nella variabile `response`.

response = requests.get(url)

A questo punto comincia il parsing del contenuto HTML memorizzato nella variabile tramite BeautifulSoup.

soup = BeautifulSoup(response.text, 'html.parser')

Questo comando analizza il testo HTML usando il parser specificato (`'html.parser'` in questo caso), creando un oggetto `BeautifulSoup` che rappresenta la struttura dell'HTML in un formato che può essere facilmente navigato e manipolato.

Dove response.text contiene il contenuto testuale della risposta HTTP, ossia l'HTML della pagina web.

Il risultato dell'operazione di parsing viene memorizzato nella variabile `soap`.

Infine, il ciclo for provvede a leggere ed estrarre i link presenti nella variabile 'soap'.

for link in soup.find_all('a', href=True):
    print(link['href'])

Il metodo `soup.find_all('a', href=True)` cerca tutti gli elementi `<a>` nel documento HTML che hanno un attributo `href`. Dove gli elementi `<a>` sono i link ipertestuali ovvero i tag <a>.

Per ogni elemento `<a>` trovato, viene stampato il valore dell'attributo `href`, che è l'URL a cui il link punta.

Questo semplice script estrae tutti i link presenti nella pagina che ho indicato nella variabile 'url'.

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base
  1. Il linguaggio Python
  2. Come installare Python sul PC
  3. Come scrivere un programma in Python
  4. Come usare Python in modalità interattiva
  5. Le variabili
  6. I numeri
  7. Gli operatori logici
  8. Le strutture iterative ( o cicli )
  9. Le strutture condizionali
  10. Le eccezioni
  11. I file in python
  12. Le classi
  13. I moduli