Avancerad Sökning
Vissa HTML-taggar kräver obligatoriska attribut, såsom att ankartaggen kräver attributet href eller <img>
som kräver attributet src
. Om du är intresserad av ett specifikt attribut kan du använda metoden .get()
efter .attrs
. Till exempel, låt oss hämta alla src
-attribut för alla <img>
-element.
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"))
Du kan även stöta på attributet id
, vilket är ganska vanligt och används för att särskilja element under samma tagg. Om du är intresserad av specifika attributvärden kan du ange dem som en ordbok (i formatet attr_name
: attr_value
) som parameter till .find_all()
(omedelbart efter att du har specificerat taggen du söker efter). Till exempel är vi intresserade av endast <div>
-element med attributet class
satt till "box"
, eller så söker vi efter <p>
-elementet med attributet "id"
satt till värdet "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"}))
Metoden .find()
användes (istället för .find_all()
) för att hämta elementet med ett specifikt id eftersom id är en unik identifierare, och det kan inte finnas mer än ett element med samma värde. För att säkerställa att endast specifika <div>
-element hämtades, undersök vilka klasser <div>
-elementen har.
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"))
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain what the output of the last code block will look like?
How can I filter `<div>` elements by multiple classes?
What other attributes can I filter elements by using BeautifulSoup?
Awesome!
Completion rate improved to 4.35
Avancerad Sökning
Svep för att visa menyn
Vissa HTML-taggar kräver obligatoriska attribut, såsom att ankartaggen kräver attributet href eller <img>
som kräver attributet src
. Om du är intresserad av ett specifikt attribut kan du använda metoden .get()
efter .attrs
. Till exempel, låt oss hämta alla src
-attribut för alla <img>
-element.
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"))
Du kan även stöta på attributet id
, vilket är ganska vanligt och används för att särskilja element under samma tagg. Om du är intresserad av specifika attributvärden kan du ange dem som en ordbok (i formatet attr_name
: attr_value
) som parameter till .find_all()
(omedelbart efter att du har specificerat taggen du söker efter). Till exempel är vi intresserade av endast <div>
-element med attributet class
satt till "box"
, eller så söker vi efter <p>
-elementet med attributet "id"
satt till värdet "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"}))
Metoden .find()
användes (istället för .find_all()
) för att hämta elementet med ett specifikt id eftersom id är en unik identifierare, och det kan inte finnas mer än ett element med samma värde. För att säkerställa att endast specifika <div>
-element hämtades, undersök vilka klasser <div>
-elementen har.
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"))
Tack för dina kommentarer!