Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Ricerca Avanzata | Lavorare con gli Attributi degli Elementi in Beautiful Soup
Web Scraping con Python

bookRicerca Avanzata

Alcuni tag HTML richiedono attributi obbligatori, come il tag anchor che necessita dell'attributo href o il tag <img> che richiede l'attributo src. Per accedere a un attributo specifico, utilizzare il metodo .get() dopo .attrs. Ad esempio, recuperare tutti gli attributi src da tutti gli elementi <img>.

12345678910111213
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for img in soup.find_all("img"): print(img.attrs.get("src"))
copy

Si può anche incontrare l'attributo id, comunemente utilizzato per distinguere elementi con lo stesso tag. Per cercare elementi con valori di attributo specifici, passarli come dizionario nel formato attr_name: attr_value al metodo .find_all(), subito dopo aver specificato il tag. Ad esempio, trovare tutti gli elementi <div> con l'attributo class impostato su "box" o l'elemento <p> con il valore dell'attributo "id" pari a "id2".

12345678910111213141516
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for div in soup.find_all("div", {"class": "box"}): print(div) # Filtering by id attribute value print(soup.find("p", {"id": "id2"}))
copy

Il metodo .find() viene utilizzato al posto di .find_all() per ottenere un elemento tramite il suo id, poiché un id è un identificatore univoco e non può comparire più di una volta. Per confermare che sono stati recuperati solo specifici elementi <div>, verificare le classi assegnate agli elementi <div>.

12345678910111213
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for div in soup.find_all("div"): print(div.attrs.get("class"))
copy
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 5

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 4.35

bookRicerca Avanzata

Scorri per mostrare il menu

Alcuni tag HTML richiedono attributi obbligatori, come il tag anchor che necessita dell'attributo href o il tag <img> che richiede l'attributo src. Per accedere a un attributo specifico, utilizzare il metodo .get() dopo .attrs. Ad esempio, recuperare tutti gli attributi src da tutti gli elementi <img>.

12345678910111213
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for img in soup.find_all("img"): print(img.attrs.get("src"))
copy

Si può anche incontrare l'attributo id, comunemente utilizzato per distinguere elementi con lo stesso tag. Per cercare elementi con valori di attributo specifici, passarli come dizionario nel formato attr_name: attr_value al metodo .find_all(), subito dopo aver specificato il tag. Ad esempio, trovare tutti gli elementi <div> con l'attributo class impostato su "box" o l'elemento <p> con il valore dell'attributo "id" pari a "id2".

12345678910111213141516
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for div in soup.find_all("div", {"class": "box"}): print(div) # Filtering by id attribute value print(soup.find("p", {"id": "id2"}))
copy

Il metodo .find() viene utilizzato al posto di .find_all() per ottenere un elemento tramite il suo id, poiché un id è un identificatore univoco e non può comparire più di una volta. Per confermare che sono stati recuperati solo specifici elementi <div>, verificare le classi assegnate agli elementi <div>.

12345678910111213
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for div in soup.find_all("div"): print(div.attrs.get("class"))
copy
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 5
some-alt