Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Lavorare con Elementi Specifici | Decodifica HTML con Beautiful Soup
Web Scraping con Python

bookLavorare con Elementi Specifici

La navigazione di un documento HTML utilizzando gli attributi di Python recupera solo la prima occorrenza di un determinato elemento. Ma cosa succede se si è interessati alla prima istanza di un elemento e non si conosce il percorso completo? In questi casi, è possibile utilizzare il metodo .find(), passando il tag (senza le parentesi < >) come stringa. Ad esempio, individuiamo il primo elemento <div> nel documento HTML.

123456789101112
# 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/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find("div"))
copy

Inoltre, è possibile recuperare tutte le istanze di uno specifico elemento utilizzando il metodo .find_all(). Questo restituirà una lista di istanze. Ad esempio, individuiamo tutti i tag <p> nel documento HTML.

123456789101112
# 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/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find_all("p"))
copy

È possibile utilizzare anche il metodo .find_all() per trovare non solo un singolo tag, ma più tag fornendo una lista di tag. Ad esempio, raccogliamo tutti gli elementi <div> e <title>.

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 el in soup.find_all(["div", "title"]): print(el)
copy

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. 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

Suggested prompts:

Can you explain the difference between .find() and .find_all() in BeautifulSoup?

How can I extract the text content from the elements found?

What other methods can I use to search for elements in BeautifulSoup?

Awesome!

Completion rate improved to 4.35

bookLavorare con Elementi Specifici

Scorri per mostrare il menu

La navigazione di un documento HTML utilizzando gli attributi di Python recupera solo la prima occorrenza di un determinato elemento. Ma cosa succede se si è interessati alla prima istanza di un elemento e non si conosce il percorso completo? In questi casi, è possibile utilizzare il metodo .find(), passando il tag (senza le parentesi < >) come stringa. Ad esempio, individuiamo il primo elemento <div> nel documento HTML.

123456789101112
# 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/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find("div"))
copy

Inoltre, è possibile recuperare tutte le istanze di uno specifico elemento utilizzando il metodo .find_all(). Questo restituirà una lista di istanze. Ad esempio, individuiamo tutti i tag <p> nel documento HTML.

123456789101112
# 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/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find_all("p"))
copy

È possibile utilizzare anche il metodo .find_all() per trovare non solo un singolo tag, ma più tag fornendo una lista di tag. Ad esempio, raccogliamo tutti gli elementi <div> e <title>.

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 el in soup.find_all(["div", "title"]): print(el)
copy

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5
some-alt