Avancerad Sökning
Vissa HTML-taggar kräver obligatoriska attribut, såsom att ankartaggen behöver attributet href eller att <img>-taggen kräver attributet src. För att komma åt ett specifikt attribut, använd metoden .get() efter .attrs. Till exempel, hämta alla src-attribut från 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 också stöta på attributet id, som ofta används för att särskilja element med samma tagg. För att söka efter element med specifika attributvärden, skicka dem som en ordbok i formatet attr_name: attr_value till metoden .find_all(), direkt efter att du har specificerat taggen. Till exempel, hitta alla <div>-element med attributet class satt till "box" eller <p>-elementet med attributet "id" med 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änds istället för .find_all() för att hämta ett element via dess id, eftersom ett id är en unik identifierare och inte kan förekomma mer än en gång. För att verifiera att endast specifika <div>-element hämtades, kontrollera vilka klasser som är tilldelade <div>-elementen.
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 how the `.get()` method works with attributes in BeautifulSoup?
What other attributes can I filter by using `.find_all()`?
How do I handle elements that don't have the attribute I'm searching for?
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 behöver attributet href eller att <img>-taggen kräver attributet src. För att komma åt ett specifikt attribut, använd metoden .get() efter .attrs. Till exempel, hämta alla src-attribut från 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 också stöta på attributet id, som ofta används för att särskilja element med samma tagg. För att söka efter element med specifika attributvärden, skicka dem som en ordbok i formatet attr_name: attr_value till metoden .find_all(), direkt efter att du har specificerat taggen. Till exempel, hitta alla <div>-element med attributet class satt till "box" eller <p>-elementet med attributet "id" med 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änds istället för .find_all() för att hämta ett element via dess id, eftersom ett id är en unik identifierare och inte kan förekomma mer än en gång. För att verifiera att endast specifika <div>-element hämtades, kontrollera vilka klasser som är tilldelade <div>-elementen.
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!