Lavorare 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"))
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"))
È 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)
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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
Lavorare 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"))
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"))
È 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)
Grazie per i tuoi commenti!