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

bookErweiterte Suche

Einige HTML-Tags erfordern zwingende Attribute, wie etwa das Ankertag, das das Attribut href benötigt, oder das <img>-Tag, das das Attribut src voraussetzt. Um auf ein bestimmtes Attribut zuzugreifen, wird die Methode .get() nach .attrs verwendet. Beispielsweise können so alle src-Attribute aus sämtlichen <img>-Elementen abgerufen werden.

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

Das Attribut id kann ebenfalls auftreten und wird häufig verwendet, um Elemente mit demselben Tag zu unterscheiden. Um nach Elementen mit bestimmten Attributwerten zu suchen, werden diese als Dictionary im Format attr_name: attr_value an die Methode .find_all() übergeben, direkt nach der Angabe des Tags. Beispielsweise können so alle <div>-Elemente mit dem Attribut class auf "box" oder das <p>-Element mit dem Attributwert "id" für "id2" gefunden werden.

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

Die Methode .find() wird anstelle von .find_all() verwendet, um ein Element anhand seiner id zu erhalten, da eine id ein eindeutiger Bezeichner ist und nicht mehrfach vorkommen kann. Um zu überprüfen, dass nur bestimmte <div>-Elemente abgerufen wurden, sollten die den <div>-Elementen zugewiesenen Klassen überprüft werden.

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

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

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

bookErweiterte Suche

Swipe um das Menü anzuzeigen

Einige HTML-Tags erfordern zwingende Attribute, wie etwa das Ankertag, das das Attribut href benötigt, oder das <img>-Tag, das das Attribut src voraussetzt. Um auf ein bestimmtes Attribut zuzugreifen, wird die Methode .get() nach .attrs verwendet. Beispielsweise können so alle src-Attribute aus sämtlichen <img>-Elementen abgerufen werden.

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

Das Attribut id kann ebenfalls auftreten und wird häufig verwendet, um Elemente mit demselben Tag zu unterscheiden. Um nach Elementen mit bestimmten Attributwerten zu suchen, werden diese als Dictionary im Format attr_name: attr_value an die Methode .find_all() übergeben, direkt nach der Angabe des Tags. Beispielsweise können so alle <div>-Elemente mit dem Attribut class auf "box" oder das <p>-Element mit dem Attributwert "id" für "id2" gefunden werden.

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

Die Methode .find() wird anstelle von .find_all() verwendet, um ein Element anhand seiner id zu erhalten, da eine id ein eindeutiger Bezeichner ist und nicht mehrfach vorkommen kann. Um zu überprüfen, dass nur bestimmte <div>-Elemente abgerufen wurden, sollten die den <div>-Elementen zugewiesenen Klassen überprüft werden.

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
some-alt