Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Avanceret Søgning | Arbejde med Elementattributter i Beautiful Soup
Web Scraping med Python

bookAvanceret Søgning

Visse HTML-tags kræver obligatoriske attributter, såsom at anchor-tagget kræver href-attributten, eller <img> kræver src-attributten. Hvis der ønskes en specifik attribut, kan .get()-metoden anvendes efter .attrs. For eksempel kan alle src-attributter for alle <img>-elementer hentes.

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

Attributten id kan også forekomme, hvilket er ret almindeligt og bruges til at adskille elementer under samme tag. Hvis der ønskes bestemte attributværdier, kan de angives som en ordbog (i formatet attr_name: attr_value) som parameter til .find_all() (umiddelbart efter angivelse af det tag, der søges efter). For eksempel er der kun interesse for <div>-elementer med attributten class sat til "box", eller der søges efter <p>-elementet med en "id"-attributværdi på "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

.find()-metoden blev anvendt (i stedet for .find_all()) for at hente elementet med et specifikt id, da id er en unik identifikator, og der ikke kan være mere end ét element med samme værdi. For at sikre, at kun specifikke <div>-elementer blev hentet, undersøges de klasser, som <div>-elementerne 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"))
copy

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

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

bookAvanceret Søgning

Stryg for at vise menuen

Visse HTML-tags kræver obligatoriske attributter, såsom at anchor-tagget kræver href-attributten, eller <img> kræver src-attributten. Hvis der ønskes en specifik attribut, kan .get()-metoden anvendes efter .attrs. For eksempel kan alle src-attributter for alle <img>-elementer hentes.

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

Attributten id kan også forekomme, hvilket er ret almindeligt og bruges til at adskille elementer under samme tag. Hvis der ønskes bestemte attributværdier, kan de angives som en ordbog (i formatet attr_name: attr_value) som parameter til .find_all() (umiddelbart efter angivelse af det tag, der søges efter). For eksempel er der kun interesse for <div>-elementer med attributten class sat til "box", eller der søges efter <p>-elementet med en "id"-attributværdi på "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

.find()-metoden blev anvendt (i stedet for .find_all()) for at hente elementet med et specifikt id, da id er en unik identifikator, og der ikke kan være mere end ét element med samme værdi. For at sikre, at kun specifikke <div>-elementer blev hentet, undersøges de klasser, som <div>-elementerne 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"))
copy

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 5
some-alt