Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Geavanceerd Zoeken | Werken met Elementattributen in Beautiful Soup
Web Scraping met Python

bookGeavanceerd Zoeken

Bepaalde HTML-tags vereisen verplichte attributen, zoals de anchor-tag die het href-attribuut nodig heeft of <img> die het src-attribuut vereist. Indien een specifiek attribuut van belang is, kan de .get()-methode na .attrs worden gebruikt. Bijvoorbeeld, het ophalen van alle src-attributen van alle <img>-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 img in soup.find_all("img"): print(img.attrs.get("src"))
copy

Het id-attribuut kan ook voorkomen, wat vrij gebruikelijk is en wordt gebruikt om elementen onder hetzelfde tag te onderscheiden. Indien specifieke attribuutwaarden van belang zijn, kunnen deze als een dictionary (in het formaat attr_name: attr_value) als parameter voor .find_all() worden meegegeven (direct na het specificeren van de tag waarnaar gezocht wordt). Bijvoorbeeld, alleen geïnteresseerd zijn in <div>-elementen met het class-attribuut ingesteld op "box", of zoeken naar het <p>-element met een "id"-attribuutwaarde van "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

De .find()-methode werd gebruikt (in plaats van .find_all()) om het element met een specifieke id op te halen, aangezien de id een unieke identificatie is en er niet meer dan één element met dezelfde waarde kan zijn. Om te garanderen dat alleen specifieke <div>-elementen worden verkregen, worden de klassen van de <div>-elementen onderzocht.

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

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 5

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

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

bookGeavanceerd Zoeken

Veeg om het menu te tonen

Bepaalde HTML-tags vereisen verplichte attributen, zoals de anchor-tag die het href-attribuut nodig heeft of <img> die het src-attribuut vereist. Indien een specifiek attribuut van belang is, kan de .get()-methode na .attrs worden gebruikt. Bijvoorbeeld, het ophalen van alle src-attributen van alle <img>-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 img in soup.find_all("img"): print(img.attrs.get("src"))
copy

Het id-attribuut kan ook voorkomen, wat vrij gebruikelijk is en wordt gebruikt om elementen onder hetzelfde tag te onderscheiden. Indien specifieke attribuutwaarden van belang zijn, kunnen deze als een dictionary (in het formaat attr_name: attr_value) als parameter voor .find_all() worden meegegeven (direct na het specificeren van de tag waarnaar gezocht wordt). Bijvoorbeeld, alleen geïnteresseerd zijn in <div>-elementen met het class-attribuut ingesteld op "box", of zoeken naar het <p>-element met een "id"-attribuutwaarde van "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

De .find()-methode werd gebruikt (in plaats van .find_all()) om het element met een specifieke id op te halen, aangezien de id een unieke identificatie is en er niet meer dan één element met dezelfde waarde kan zijn. Om te garanderen dat alleen specifieke <div>-elementen worden verkregen, worden de klassen van de <div>-elementen onderzocht.

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

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 5
some-alt