Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Avancerad Sökning | Arbeta med Elementattribut i Beautiful Soup
Web Scraping med Python

bookAvancerad 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"))
copy

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"}))
copy

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"))
copy
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

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

bookAvancerad 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"))
copy

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"}))
copy

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"))
copy
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5
some-alt