Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Erweiterte Suche | Arbeiten mit Elementattributen in Beautiful Soup
Web Scraping mit Python
course content

Kursinhalt

Web Scraping mit Python

Web Scraping mit Python

1. Kennenlernen von HTML
2. HTML mit Beautiful Soup Entschlüsseln
3. Arbeiten mit Elementattributen in Beautiful Soup

book
Erweiterte Suche

Einige HTML-Tags benötigen Pflichtattribute, wie z. B. das Anchor-Tag, das das href-Attribut erfordert, oder <img>, das das src-Attribut benötigt. Wenn Sie an einem bestimmten Attribut interessiert sind, können Sie die Methode .get() in Verbindung mit .attrs verwenden. Zum Beispiel rufen wir alle src-Attribute aller <img>-Elemente ab.

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

Sie könnten auch auf das id-Attribut stoßen, das ziemlich üblich ist und verwendet wird, um Elemente mit demselben Tag zu unterscheiden. Wenn Sie an bestimmten Attributwerten interessiert sind, können Sie diese als Dictionary (im Format attr_name: attr_value) als Parameter für .find_all() übergeben (unmittelbar nach Angabe des gesuchten Tags). Zum Beispiel interessieren wir uns nur für <div>-Elemente mit dem class-Attribut, das auf "box" gesetzt ist, oder wir suchen nach dem <p>-Element mit einem "id"-Attributswert von "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

Wir haben die .find()-Methode (anstatt .find_all()) verwendet, um das Element mit einer bestimmten ID abzurufen, da die ID ein eindeutiger Identifikator ist und es nicht mehr als ein Element mit demselben Wert geben kann. Um sicherzustellen, dass wir nur bestimmte <div>-Elemente erhalten, untersuchen wir die Klassen, die <div>-Elemente besitzen.

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

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5
We're sorry to hear that something went wrong. What happened?
some-alt