---
title: "find() und find_all() in BeautifulSoup: Leitfaden 2026"
slug: find-all-beautiful-soup
date: 2026-02-16T07:47:48+00:00
modified: 2026-02-16T07:47:48+00:00
permalink: https://brightdata.de/blog/web-data-de/find-all-beautiful-soup
type: blog
---

[ Blog ](https://brightdata.de/blog "Blog") / [Web Data](https://brightdata.de/blog/web-data-de)







 [Web Data](https://brightdata.de/blog/web-data-de)

# find() und find\_all() in BeautifulSoup: Leitfaden 2026

Lernen Sie, wie Sie mit den Methoden find() und find_all() von BeautifulSoup Webdaten in Python effizient nach Klasse, ID, Text und Attributen durchsuchen können.

 12 min lesen





 [ ![Jacob Nulty](https://media.brightdata.de/2024/12/Jacob-Nulty-50x50.jpg) ](https://brightdata.com/blog/authors/jake-nulty)

 [Jake Nulty

Technical Writer

 ](https://brightdata.com/blog/authors/jake-nulty)





 ![How To Use BeautifulSoup’s find and find_all blog image](https://media.brightdata.de/2025/01/How-To-Use-BeautifulSoups-find-and-find_all.svg)





`<a href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#:~:text=using%20tag%20names-,The,-simplest%20way%20to" rel="noreferrer noopener nofollow" target="_blank">find()</a>` und `<a href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#:~:text=link1%22%3EElsie%3C/a%3E-,If,-you%20need%20to" rel="noreferrer noopener nofollow" target="_blank">find_all()</a>` sind wichtige Methoden für [das Web-Scraping mit BeautifulSoup](/blog/how-tos/beautiful-soup-web-scraping), mit denen Sie Daten aus HTML extrahieren können. Die Methode `find()` ruft das erste Element ab, das Ihren Kriterien entspricht, z. B. `find("div")`, um das erste `div` auf einer Seite zu erhalten, und gibt `None` zurück, wenn keine Übereinstimmung gefunden wird. `find_all()` hingegen findet alle übereinstimmenden Elemente und gibt sie als Liste zurück, was sich perfekt für die Extraktion mehrerer Elemente wie aller `div-Tags` eignet. Bevor Sie mit BeautifulSoup mit dem Web-Scraping beginnen, stellen Sie sicher, dass Sie sowohl Requests als auch BeautifulSoup installiert haben.

**Installieren Sie Abhängigkeiten**

```none
pip install requests

```

```none
pip install beautifulsoup4

```

## <a></a>find()

Machen wir uns mit `find()` vertraut. In den folgenden Beispielen verwenden wir [Quotes To Scrape](https://quotes.toscrape.com/) und die [Fake Store API](https://fakestoreapi.com/), um Elemente auf der Seite zu finden. Beide Websites wurden für das Scraping entwickelt. Sie ändern sich nicht viel und eignen sich daher perfekt zum Lernen.

### <a></a>Suche nach Klasse

Um ein Element anhand seiner `Klasse` zu finden, verwenden wir das Schlüsselwort `class_`. Sie fragen sich vielleicht, warum `class_` und nicht `class`? In Python ist `class` ein Schlüsselwort, das zum Erstellen benutzerdefinierter Datentypen verwendet wird. Der Unterstrich in `class_` verhindert, dass dieses Schlüsselwort Konflikte mit unserem Code verursacht.

Das folgende Beispiel findet das erste `div` mit der `Klasse`: `quote`.

```none
import requests
from bs4 import BeautifulSoup

response = requests.get("https://quotes.toscrape.com")

soup = BeautifulSoup(response.text, "html.parser")

first_quote = soup.find("div", class_="quote")
print(first_quote.text)

```

Hier ist unsere Ausgabe.

```none
„Die Welt, wie wir sie geschaffen haben, ist ein Produkt unseres Denkens. Sie kann nicht verändert werden, ohne unser Denken zu verändern.“
von Albert Einstein
(über)

Tags:

Veränderung
Tiefe Gedanken
Denken
Welt

```

### <a></a>Suche nach ID

Beim Scraping müssen Sie häufig auch nach Elementen anhand ihrer `ID` suchen. Im folgenden Beispiel verwenden wir das `ID-Argument`, um das Menü auf der Seite zu finden. Hier finden wir das Menü auf der Seite anhand seiner `ID`.

```none
import requests
from bs4 import BeautifulSoup

response = requests.get("https://fakestoreapi.com")

soup = BeautifulSoup(response.text, "html.parser")

ul = soup.find("ul", id="menu")

print(ul.text)

```

Hier ist das Menü, nachdem wir es extrahiert und auf dem Terminal ausgegeben haben.

```none
Home
Dokumente
GitHub
Kaufen Sie mir einen Kaffee

```

### <a></a>Suche nach Text

Wir können auch anhand des Textes nach Elementen suchen. Dazu verwenden wir das `String-Argument`. Das folgende Beispiel findet die Schaltfläche `„Anmelden”` auf der Seite.

```none
import requests
from bs4 import BeautifulSoup

response = requests.get("https://quotes.toscrape.com")

soup = BeautifulSoup(response.text, "html.parser")

login_button = soup.find("a", string="Login")
print(login_button.text)

```

Wie Sie sehen können, wird `„Login“` auf der Konsole ausgegeben.

```none
Login

```

### <a></a>Suche nach Attribut

Wir können auch verschiedene Attribute für eine präzisere Suche verwenden. Dieses Mal suchen wir erneut das erste Zitat auf der Seite. Allerdings suchen wir nach einem `Span` mit dem `Itemprop` `„text`”. Damit finden wir erneut unser erstes Zitat, jedoch ohne alle zusätzlichen Informationen wie `Autor` und `Tags`.

```none
import requests
from bs4 import BeautifulSoup

response = requests.get("https://quotes.toscrape.com")

soup = BeautifulSoup(response.text, "html.parser")

first_clean_quote = soup.find("span", attrs={"itemprop": "text"})

print(first_clean_quote.text)

```

Hier ist die bereinigte Version unseres ersten Zitats.

```none
„Die Welt, wie wir sie geschaffen haben, ist ein Produkt unseres Denkens. Sie kann nicht verändert werden, ohne unser Denken zu verändern.“

```

### <a></a>Suche anhand mehrerer Kriterien

Wie Sie vielleicht bereits bemerkt haben, nimmt das Argument `„attr“` anstelle eines einzelnen Werts ein `Dict` entgegen. Dadurch können wir mehrere Kriterien für eine noch bessere Filterung übergeben. Hier finden wir den ersten Autor auf der Seite mithilfe der Attribute `„class“` und `„itemprop` “.

```none
import requests
from bs4 import BeautifulSoup

response = requests.get("https://quotes.toscrape.com")

soup = BeautifulSoup(response.text, "html.parser")

first_author = soup.find("small", attrs={"class": "author", "itemprop": "author"})
print(first_author.text)

```

Wenn Sie dies ausführen, sollten Sie `Albert Einstein` als Ausgabe erhalten.

```none
Albert Einstein

```

## <a></a>find\_all()

Lassen Sie uns nun dieselben Beispiele mit `find_all()` durchgehen. Auch hier verwenden wir wieder Quotes to Scrape und die Fake Store API. Diese Beispiele sind fast identisch, mit einem wesentlichen Unterschied. `find()` gibt ein einzelnes Element zurück. `find_all()` gibt eine `Liste` von Seitenelementen zurück.

### <a></a>Suche nach Klasse

Um Elemente anhand ihrer `Klasse` zu finden, verwenden wir das Schlüsselwort-Argument `class_`. Der folgende Code verwendet `find_all()`, um jedes Zitat anhand seiner CSS-Klasse zu extrahieren.

```none
import requests
from bs4 import BeautifulSoup

response = requests.get("https://quotes.toscrape.com")

soup = BeautifulSoup(response.text, "html.parser")

quotes = soup.find_all("div", class_="quote")

for quote in quotes:
    print("-------------")
    print(quote.text)

```

Wenn wir die erste Seite der Zitate extrahieren und ausdrucken, sieht das so aus.

```none
-------------

„Die Welt, wie wir sie geschaffen haben, ist ein Produkt unseres Denkens. Sie kann nicht verändert werden, ohne unser Denken zu verändern.“
von Albert Einstein
(über)

Tags:

Veränderung
Tiefgründige Gedanken
Denken
Welt

-------------

„Es sind unsere Entscheidungen, Harry, die zeigen, wer wir wirklich sind, viel mehr als unsere Fähigkeiten.“
von J.K. Rowling
(über)

            Tags:

Fähigkeiten
Entscheidungen

-------------

„Es gibt nur zwei Möglichkeiten, sein Leben zu leben. Die eine ist, als wäre nichts ein Wunder. Die andere ist, als wäre alles ein Wunder.“
von Albert Einstein
(über)

Tags:

inspirierend
Leben
leben
Wunder
Wunder

-------------

„Wer, ob Mann oder Frau, keine Freude an einem guten Roman hat, muss unerträglich dumm sein.“
von Jane Austen
(über)

            Tags:

Alphabetisierung
Bücher
Klassiker
Humor

-------------

„Unvollkommenheit ist Schönheit, Wahnsinn ist Genialität, und es ist besser, absolut lächerlich zu sein als absolut langweilig.“
von Marilyn Monroe
(über)

            Tags:

sei-du-selbst
inspirierend

-------------

„Versuche nicht, ein erfolgreicher Mensch zu werden. Werde lieber ein wertvoller Mensch.“
von Albert Einstein
(über)

            Tags:

Erwachsensein
Erfolg
Wert

-------------

„Es ist besser, für das, was man ist, gehasst zu werden, als für das, was man nicht ist, geliebt zu werden.“
von André Gide
(über)

Tags:

Leben
Liebe

-------------

„Ich habe nicht versagt. Ich habe nur 10.000 Wege gefunden, die nicht funktionieren.“
von Thomas A. Edison
(über)

            Tags:

Edison
Misserfolg
inspirierend
paraphrasiert

-------------

„Eine Frau ist wie ein Teebeutel: Man weiß nie, wie stark sie ist, bis sie in heißem Wasser liegt.“
von Eleanor Roosevelt
(über)

            Tags:

falsch zugeschrieben-eleanor-roosevelt

-------------

„Ein Tag ohne Sonnenschein ist wie, na ja, die Nacht.“
von Steve Martin
(über)

Tags:

humorvoll
offensichtlich
Gleichnis

```

### <a></a>Suche nach ID

Wie wir bereits bei der Verwendung `von find()` besprochen haben, ist `id` eine weitere gängige Methode, um Daten aus einer Seite zu extrahieren. Um Daten anhand ihrer `ID` zu extrahieren, verwenden wir das Argument `id`… genau wie zuvor.

Anschließend suchen wir alle `ul` -Elemente mit der `ID` `„menu`“. Es gibt nur ein Menü, daher finden wir auch nur eines.

```none
import requests
from bs4 import BeautifulSoup

response = requests.get("https://fakestoreapi.com")

soup = BeautifulSoup(response.text, "html.parser")

uls = soup.find_all("ul", id="menu")

for ul in uls:
    print("-------------")
    print(ul.text)

```

Da es auf der Seite nur ein Menü gibt, ist unsere Ausgabe genau dieselbe wie bei der Verwendung von `find()`.

```none
-------------

Home
Dokumente
GitHub
Kaufen Sie mir einen Kaffee

```

### <a></a>Suche nach Text

Nun extrahieren wir Elemente aus einer Seite anhand ihres Textes. Dazu verwenden wir das `String-Argument`. Im folgenden Beispiel suchen wir alle `Elemente, die` den `String` `„Login”` enthalten. Auch hier gibt es wieder nur eines.

```none
import requests
from bs4 import BeautifulSoup

response = requests.get("https://quotes.toscrape.com")

soup = BeautifulSoup(response.text, "html.parser")

login_buttons = soup.find_all("a", string="Login")

for button in login_buttons:
    print("-------------")
    print(button)

```

Ihre Ausgabe sollte wie folgt aussehen.

```none
-------------
<a href="/login">Login</a>

```

### <a></a>Suche nach Attribut

Wenn Sie mit dem Scraping in der Praxis beginnen, müssen Sie häufig andere Attribute verwenden, um Elemente aus der Seite zu extrahieren. Erinnern Sie sich noch an die unübersichtliche Ausgabe aus dem ersten Beispiel? Im nächsten Ausschnitt verwenden wir das Attribut `„itemprop”` und extrahieren diesmal nur die Anführungszeichen.

```none
import requests
from bs4 import BeautifulSoup

response = requests.get("https://quotes.toscrape.com")

soup = BeautifulSoup(response.text, "html.parser")

clean_quotes = soup.find_all("span", attrs={"itemprop": "text"})

for quote in clean_quotes:
    print("-------------")
    print(quote.text)

```

Sehen Sie, wie sauber unsere Ausgabe ist!

```none
-------------
„Die Welt, wie wir sie geschaffen haben, ist ein Produkt unseres Denkens. Sie kann nicht verändert werden, ohne unser Denken zu verändern.“
-------------
„Es sind unsere Entscheidungen, Harry, die zeigen, wer wir wirklich sind, viel mehr als unsere Fähigkeiten.“
-------------
„Es gibt nur zwei Möglichkeiten, sein Leben zu leben. Die eine ist, als wäre nichts ein Wunder. Die andere ist, als wäre alles ein Wunder.“
-------------
„Wer, ob Mann oder Frau, keine Freude an einem guten Roman hat, muss unerträglich dumm sein.“
-------------
„Unvollkommenheit ist Schönheit, Wahnsinn ist Genialität, und es ist besser, absolut lächerlich zu sein als absolut langweilig.“
-------------
„Versuche nicht, ein erfolgreicher Mensch zu werden. Werde lieber ein wertvoller Mensch.“
-------------
„Es ist besser, für das, was man ist, gehasst zu werden, als für das, was man nicht ist, geliebt zu werden.“
-------------
„Ich habe nicht versagt. Ich habe nur 10.000 Wege gefunden, die nicht funktionieren.“
-------------
„Eine Frau ist wie ein Teebeutel: Man weiß nie, wie stark sie ist, bis sie in heißem Wasser liegt.“
-------------
„Ein Tag ohne Sonnenschein ist wie, na ja, die Nacht.“

```

### <a></a>Suche anhand mehrerer Kriterien

Dieses Mal verwenden wir das Argument `„attrs“` auf komplexere Weise. Hier suchen wir alle `kleinen` Elemente, die eine `Klasse` `„author` “ **und** eine `Eigenschaft „itemprop“` von `„author“` haben. Dazu übergeben wir beide Attribute an unser Wörterbuch `„attrs` “.

```none
import requests
from bs4 import BeautifulSoup

response = requests.get("https://quotes.toscrape.com")

soup = BeautifulSoup(response.text, "html.parser")

authors = soup.find_all("small", attrs={"class": "author", "itemprop": "author"})

for author in authors:
    print("-------------")
    print(author.text)

```

Hier ist unsere Liste der Autoren in der Konsole.

```none
-------------
Albert Einstein
-------------
J.K. Rowling
-------------
Albert Einstein
-------------
Jane Austen
-------------
Marilyn Monroe
-------------
Albert Einstein
-------------
André Gide
-------------
Thomas A. Edison
-------------
Eleanor Roosevelt
-------------
Steve Martin

```

## <a></a>Fortgeschrittene Techniken

Hier sind einige fortgeschrittenere Techniken. In den folgenden Beispielen verwenden wir `find_all()`, aber diese Methoden sind auch mit `find()` kompatibel. Denken Sie nur daran: Möchten Sie ein einzelnes Element oder eine Liste davon?

### <a></a>Regex

Regex ist ein sehr leistungsfähiges Werkzeug für die Zeichenfolgenübereinstimmung. In diesem Codebeispiel kombinieren wir es mit der `Zeichenfolge` article, um alle Elemente zu finden, die `einstein` enthalten, unabhängig von ihrer Groß-/Kleinschreibung.

```none
import requests
import re
from bs4 import BeautifulSoup

response = requests.get("https://quotes.toscrape.com")

soup = BeautifulSoup(response.text, "html.parser")

pattern = re.compile(r"einstein", re.IGNORECASE)

tags = soup.find_all(string=pattern)

print(f"Gesamtzahl der Einstein-Zitate: {len(tags)}")

```

Auf der Seite wurden 3 Zitate gefunden.

```none
Gesamtzahl der Einstein-Zitate: 3

```

### <a></a>Benutzerdefinierte Funktionen

Schreiben wir nun eine benutzerdefinierte Funktion, um alle tatsächlichen Zitate von Einstein zurückzugeben. Im folgenden Beispiel erweitern wir die reguläre Ausdrucksfunktion. Wir verwenden die `übergeordnete` Methode, um die Karte mit dem Zitat zu durchsuchen und zu finden. Als Nächstes suchen wir alle Spans. Der erste `Span` auf der Karte enthält das eigentliche Zitat. Wir geben seinen Inhalt in der Konsole aus.

```none
import requests
import re
from bs4 import BeautifulSoup

def find_einstein_quotes(http_response):
    soup = BeautifulSoup(http_response.text, "html.parser")

    #find all einstein tags
    pattern = re.compile(r"einstein", re.IGNORECASE)
    tags = soup.find_all(string=pattern)

    for tag in tags:
        #den übergeordneten Tags folgen, bis wir die Zitat-Karte haben
        full_card = tag.parent.parent.parent

        #die Spans finden
        spans = full_card.find_all("span")

        #den ersten Span ausgeben, er enthält das eigentliche Zitat
        print(spans[0].text)

if __name__ == "__main__":
    response = requests.get("https://quotes.toscrape.com")
    find_einstein_quotes(response)

```

Hier ist unsere Ausgabe.

```none
„Die Welt, wie wir sie geschaffen haben, ist ein Produkt unseres Denkens. Sie kann nicht verändert werden, ohne unser Denken zu verändern.“
„Es gibt nur zwei Möglichkeiten, sein Leben zu leben. Die eine ist, als wäre nichts ein Wunder. Die andere ist, als wäre alles ein Wunder.“
„Versuche nicht, ein erfolgreicher Mensch zu werden. Werde lieber ein wertvoller Mensch.“

```

## <a></a>Bonus: Suchen mit CSS-Selektoren

`Die Select-Methode` von BeautifulSoup funktioniert fast genauso wie `find_all()`, ist aber etwas flexibler. Diese Methode verwendet einen CSS-Selektor. Wenn Sie einen [Selektor](https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics/Basic_selectors) schreiben können, können Sie ihn finden. In diesem Code finden wir wieder alle unsere Autoren anhand mehrerer Attribute. Wir können diese jedoch als einen einzigen Selektor übergeben.

```none
import requests
from bs4 import BeautifulSoup

response = requests.get("https://quotes.toscrape.com")

soup = BeautifulSoup(response.text, "html.parser")

authors = soup.select("small[class='author'][itemprop='author']")

for author in authors:
    print("-------------")
    print(author.text)

```

Hier ist unsere Ausgabe.

```none
-------------
Albert Einstein
-------------
J.K. Rowling
-------------
Albert Einstein
-------------
Jane Austen
-------------
Marilyn Monroe
-------------
Albert Einstein
-------------
André Gide
-------------
Thomas A. Edison
-------------
Eleanor Roosevelt
-------------
Steve Martin

```

## <a></a>Fazit

Jetzt kennen Sie so gut wie alle Aspekte von`find()`und`find_all()`in BeautifulSoup. Sie müssen nicht alle diese Methoden beherrschen. Dank der großen Auswahl an Suchmethoden können Sie diejenige auswählen, mit der Sie am besten zurechtkommen. Am wichtigsten ist, dass Sie sie verwenden können, um Daten aus jeder beliebigen Webseite zu extrahieren. In der Produktion, insbesondere für schnelle und zuverlässige Ergebnisse mit einer hohen Erfolgsquote, sollten Sie unsere[Residential-Proxys](/proxy-types/residential-proxies)oder sogar[unseren Scraping-Browser](/products/scraping-browser)in Betracht ziehen, der über ein integriertes Proxy-Managementsystem und [eine CAPTCHA-Lösung](/products/web-unlocker/captcha-solver) verfügt.

Melden Sie sich noch heute an und testen Sie das Produkt gratis, um das perfekte Produkt für Ihre Anforderungen zu finden.



Vertrieb kontaktierenGratis testen![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Inhaltsverzeichnis







Dedicated Scraper APIs &amp; No-Code Scrapers

Over 1000 scrapers for all popular domains. Simplify your web scraping.

[See pricing](/pricing/web-scraper "See pricing")

Just want data? Skip scraping.

Hundreds of ready-to-use datasets from all popular domains.

[See pricing](/pricing/datasets "See pricing")







 [ ](https://news.ycombinator.com/submitlink?t=find%28%29+und+find_all%28%29+in+BeautifulSoup%3A+Leitfaden+2026&u=https://brightdata.de/blog/web-data-de/find-all-beautiful-soup) [ ](https://www.linkedin.com/shareArticle?mini=true&title=find%28%29+und+find_all%28%29+in+BeautifulSoup%3A+Leitfaden+2026&url=https://brightdata.de/blog/web-data-de/find-all-beautiful-soup) [ ](http://www.reddit.com/submit?title=find%28%29+und+find_all%28%29+in+BeautifulSoup%3A+Leitfaden+2026&url=https://brightdata.de/blog/web-data-de/find-all-beautiful-soup)







##  Das könnte Sie auch interessieren

 [ ![OpenHuman with Bright Data](https://media.brightdata.de/2026/09/OpenHuman-with-Bright-Data.png) ](https://brightdata.de/blog/ai/openhuman-with-bright-data "Produktionsreifer Web-Zugriff in OpenHuman über die Bright Data CLI")

 [AI



 ![Antonello Zanini](https://media.brightdata.de/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Produktionsreifer Web-Zugriff in OpenHuman über die Bright Data CLI

Integrieren Sie die Bright Data CLI mit OpenHuman, um produktionsreifen Web-Zugriff und Datenerhebung für KI-Agenten zu ermöglichen.



 09-Sep-2026

 12 min lesen

 ](https://brightdata.de/blog/ai/openhuman-with-bright-data)

 [ ![Multimodal Web Scraping with MiniMax](https://media.brightdata.de/2026/09/Multimodal-Web-Scraping-with-MiniMax.png) ](https://brightdata.de/blog/web-data-de/multimodal-web-scraping-with-minimax "Multimodales Web-Scraping mit MiniMax")

 [Web Data



 ![Antonello Zanini](https://media.brightdata.de/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Multimodales Web-Scraping mit MiniMax

Kombinieren Sie Bright Data Web Unlocker mit MiniMax M3 Vision, um strukturierte Daten aus Bildern und Webseiten-Screenshots zu extrahieren.



 09-Sep-2026

 4 min lesen

 ](https://brightdata.de/blog/web-data-de/multimodal-web-scraping-with-minimax)

 [ ![The 10 Best CLI Tools for Codex in 2026](https://media.brightdata.de/2026/08/The-10-Best-CLI-Tools-for-Codex-in-2026.png) ](https://brightdata.de/blog/ai/best-cli-tools-for-codex "Die 10 besten CLI-Tools für Codex im Jahr 2026 – Getestet & Bewertet")

 [AI



 ![Daniel Shashko](https://media.brightdata.de/2022/04/Daniel-Shashko-2-50x50.png)

Daniel Shashko

Web Data &amp; AI Expert





### Die 10 besten CLI-Tools für Codex im Jahr 2026 – Getestet &amp; Bewertet

Die 10 CLI-Tools, die Codex schneller und leistungsfähiger machen, beginnend mit dem Bright Data CLI für echten Web-Zugriff aus der Sandbox heraus.



 06-Sep-2026

 20 min lesen

 ](https://brightdata.de/blog/ai/best-cli-tools-for-codex)
