Gelbe Seiten Scraper
Ein in Python geschriebener Apify Actor zum Extrahieren von Firmeneinträgen aus den Gelben Seiten (www.gelbeseiten.de). Er bietet drei verschiedene Modi für unterschiedliche Detailstufen der Extraktion. Zu den Funktionen gehören Rate-Limiting, Proxy-Konfiguration, flexible Indexbereiche zur Steuerung der Paginierung oder zum Fortsetzen unterbrochener Läufe, anpassbare Sortieroptionen und ortsbasierte Radiusfilterung.
💡Funktionen
- Zielgerichtete Suche: Geben Sie den Dienst oder die Art des Unternehmens an
(
search_what) und das geografische Gebiet (search_where). Verwenden Sie"bundesweit"für deutschlandweite Suchen. - Drei Suchmodi (
search_mode):fast_search: Extrahiert schnell Zusammenfassungsinformationen direkt von den Suchergebnisseiten ohne den Besuch von Detailseiten. Beinhaltet Name, Adresssippet, Telefon, Bewertung, Hauptbranche und kodierte Kontaktlinks (E-Mail/Website). Ideal für die schnelle Listen-Erstellung.basic_search: Besucht jede Unternehmensdetailseite einmal, um wesentliche Angaben wie vollständige Adresse, E-Mail, Website, Beschreibung, Branche, Telefonnummer und Social-Media-Links zu erfassen. Beinhaltet keine Zusammenfassungsdaten wie Bewertungen aus den Suchergebnissen.deep_search: Kombiniert die Zusammenfassungsdaten ausfast_searchmit einem umfassenden Besuch der Detailseite, um alle verfügbaren Felder zu extrahieren, einschließlich Öffnungszeiten, Leistungen, ausführliche Unternehmensinformationen, Ausbildungsmöglichkeiten, Zahlungsmethoden, Social-Media-Links, Faxnummer, Google-Maps-Link, FAQs usw. Dies ist der gründlichste Modus.
- Flexible Sortierung: Wählen Sie zwischen Relevanz-basierter Sortierung (Standard) oder Bewertungs-basierter Sortierung, um hoch bewertete Unternehmen zu priorisieren.
- Standort-Radiussteuerung: Legen Sie einen benutzerdefinierten Suchradius (0-50 km) um Ihren angegebenen Standort fest für präzise geografische Zielausrichtung.
- Indexsteuerung: Verwenden Sie
start_indexundend_index(1-basiert), um einen bestimmten Bereich von Einträgen zu verarbeiten – nützlich zum Fortsetzen unterbrochener Läufe oder für gezieltes Scraping. - Unbegrenzter Modus: Setzen Sie
max_businessesauf0, um alle gefundenen Ergebnisse zu scrapen. - Rate-Limiting: Konfigurierbares
requests_per_secondzur Steuerung der API-Anfragen und Detailseiten-Anfragen, um die Last zu steuern und das Blockierungsrisiko zu verringern. - Proxy-Unterstützung: Nutzt Apifys integrierte Proxy-Integration
(
proxyConfiguration) für zuverlässige IP-Rotation während des Scraping, besonders wichtig bei Detailseiten-Anfragen. - Strukturierte Ausgabe: Daten werden in das Apify-Dataset gespeichert. Jeder
Datensatz enthält einen UTC-Zeitstempel
scraped_atund einenindex(Gesamtposition in den Suchergebnissen).
📥Eingabeparameter
Konfigurieren Sie das Verhalten des Actors über die Eingabefelder im Apify Console Input-Tab oder via API:
| Feld | Typ | Beschreibung | Standard | Erforderlich |
|---|---|---|---|---|
search_what |
String | Art des Unternehmens, Beruf oder Dienst, nach dem gesucht werden soll (z. B. „Restaurant", „Arzt", „Hotel", „Kreditvermittlung"). | "containerbau" |
Ja |
search_where |
String | Geografischer Ort (z. B. Stadt wie „Berlin", Region oder "bundesweit" für
deutschlandweit). |
"bundesweit" |
Ja |
search_mode |
String | Detailgrad der Extraktion: fast_search (nur Zusammenfassung),
basic_search (wesentliche Details von der Profilseite), deep_search (Zusammenfassung +
alle Profildetails).
|
"basic_search" |
Nein |
sorting |
String | Sortierung der Suchergebnisse nach relevance (wie gut Einträge zu Suchbegriffen passen) oder rating (Nutzerbewertungen und Ratings). |
"relevance" |
Nein |
perimeter |
Integer | Suchradius um den angegebenen Standort in Kilometern (0-50). Gilt nur für bestimmte Städte/Gebiete, nicht für deutschlandweite (bundesweit) Suchen. |
0 |
Nein |
max_businesses |
Integer | Maximale Anzahl zu speichernder Einträge. 0 für unbegrenzt (scrapt alle gefundenen Ergebnisse).
|
0 |
Nein |
start_index |
Integer | 1-basierter Index des ersten zu speichernden Eintrags. Nützlich zum Fortsetzen von Läufen oder Überspringen der ersten Ergebnisse. | 1 |
Nein |
end_index |
Integer | 1-basierter Index des letzten zu speichernden Eintrags (inklusive). 0 ignoriert
dieses Limit und verlässt sich nur auf max_businesses. Die maximale Anzahl extrahierbarer Einträge beträgt 30.000, da die Website danach beginnt, Ergebnisse zu wiederholen. |
0 |
Nein |
requests_per_second |
Integer | Max. Anfragen pro Sekunde. Gilt für API-Anfragen und Detailseiten-Abfragen. Niedrigere Werte (z. B. 2–5) sicherer, höhere (z. B. 10+) schneller. | 12 |
Nein |
proxyConfiguration |
Objekt | Apify-Proxy-Einstellungen (Automatisch empfohlen) oder eigene Proxy-Konfiguration. | {} |
Nein |
🔹Beispiel für Eingaben
{
"search_what": "Hotels",
"search_where": "Hamburg",
"search_mode": "deep_search",
"sorting": "rating",
"perimeter": 15,
"max_businesses": 200,
"start_index": 51,
"requests_per_second": 8,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
📤Ausgabe-Datenstruktur
Jeder Datensatz im Dataset ist ein JSON-Objekt. Die genauen Felder hängen vom gewählten
search_mode ab.
🔹fast_search Beispiel-Ausgabe
{
"index": 1,
"url": "https://www.gelbeseiten.de/gsbiz/abc123xyz",
"name": "SchnellTest GmbH",
"bewertung": 4.5,
"bewertungen": 8,
"besteBranche": "Testdienste",
"telefonnummer": "040 1234567",
"emaillink": "https://www.gelbeseiten.de/gsbiz/abc123xyz#email-schreiben", // Dekodiert aus Base64
"webseitelink": "https://schnelltest.de", // Dekodiert aus Base64
"adresse_from_search": "Teststraße 1, 20095 Hamburg Neustadt", // Adresssippet aus Suchergebnissen
"scraped_at": "2025-04-30T09:30:00.123Z"
}
🔹basic_search Beispiel-Ausgabe
{
"index": 51, // Beispiel falls start_index 51 war
"url": "https://www.gelbeseiten.de/gsbiz/abc123xyz",
"name": "Hotel Hanseatic", // Extrahiert von der Detailseite
"email": "[email protected]", // Extrahiert von der Detailseite
"website": "http://www.hotel-hanseatic.de", // Extrahiert von der Detailseite
"beschreibung": "Gemütliches Hotel im Herzen von St. Georg.", // Extrahiert von der Detailseite
"branche": "Hotels", // Extrahiert von der Detailseite
"social_media": { // Extrahiert von der Detailseite
"facebook": "https://facebook.com/hotelhanseatic"
},
"address": "Steindamm 50, 20099 Hamburg St. Georg", // Adresse von der Detailseite
"telefonnummer": "040 9876543", // Extrahiert von der Detailseite
"scraped_at": "2025-04-30T09:35:00.789Z"
}
Hinweis: Ruft nur von der Detailseite ab, beinhaltet keine Zusammenfassungsdaten der Suchergebnisse.
🔹deep_search Beispiel-Ausgabe
Kombiniert fast_search Zusammenfassungsdaten mit allen verfügbaren Detailseiten-Daten.
{
// --- Felder von fast_search (Suchergebnisseite) ---
"index": 201,
"url": "https://www.gelbeseiten.de/gsbiz/abc123xyz",
"name": "Muster Restaurant",
"bewertung": 4.8,
"bewertungen": 55,
"besteBranche": "Restaurants",
"telefonnummer": "040 1122334",
"emaillink": "https://www.gelbeseiten.de/gsbiz/abc123xyz#email-schreiben",
"webseitelink": "https://www.muster-restaurant.de",
"adresse_from_search": "Musterweg 10, 20457 Hamburg Altstadt",
"scraped_at": "2025-04-30T09:40:00.456Z",
// --- Zusätzliche Felder von deep_search (Detailseite) ---
"email": "[email protected]",
"website": "https://www.muster-restaurant.de", // Dasselbe wie webseitelink
"beschreibung": "Moderne deutsche Küche mit saisonalen Zutaten.",
"oeffnungszeiten": { // Beispiel-Struktur
"Mo.": "Ruhetag",
"Di.-Sa.": "18:00 - 23:00",
"So.": "12:00 - 15:00"
},
"branche": "Restaurant; Deutsche Küche", // Kann detaillierter sein als besteBranche
"leistungsumfang": "Abendessen, Mittagstisch (So), Terrasse",
"services": ["Restaurant", "Deutsche Küche", "Terrasse"],
"unternehmensinformationen": { // Beispiel-Struktur
"gründungsjahr": ["2010"],
"parkplätze": ["vorhanden"]
},
"ausbildung": null, // Oder Text/Liste falls verfügbar
"zahlungsmittel": ["EC-Karte", "Kreditkarte", "Bar"],
"social_media": {
"instagram": "https://instagram.com/musterrestaurant"
},
"google_maps_url": "",
"faxnummer": "040 1122335"
}
Jeder Datensatz enthält zusätzliche Felder je nach gewähltem search_mode. Nachfolgend eine
vollständige Feldreferenz:
| Schlüssel | Verfügbar in | Beschreibung |
|---|---|---|
name |
fast/basic/deep | Firmenname aus dem Eintrag oder der Detailseite. |
adresse_from_search |
fast/deep | Adresssippet von der Eintragseite. |
address |
basic/deep | Straßenadresse von der Detailseite. |
telefonnummer |
fast/basic/deep | Telefonnummer aus dem Eintrag oder der Detailseite. |
faxnummer |
deep | Faxnummer von der Detailseite. |
bewertung |
fast/deep | Durchschnittsbewertung (numerisch). |
bewertungen |
fast/deep | Anzahl der Bewertungen. |
besteBranche |
fast/deep | Hauptbranche/Industrie aus dem Eintrag. |
branche |
basic/deep | Industrie von der Detailseite. |
email |
basic/deep | E-Mail von der Detailseite. |
emaillink |
fast/deep | Dekodierter Link zur E-Mail auf der Detailseite. |
webseitelink |
fast/deep | Dekodierter Website-Link. |
beschreibung |
basic/deep | Unternehmensbeschreibung auf der Detailseite. |
oeffnungszeiten |
deep | Öffnungszeiten nach Tag. |
leistungsumfang |
deep | Leistungsumfang. |
services |
deep | Liste der angebotenen Leistungen. |
unternehmensinformationen |
deep | Zusätzliche Unternehmensinformationen. |
ausbildung |
deep | Bildungs- oder Ausbildungsinformationen. |
zahlungsmittel |
deep | Akzeptierte Zahlungsmethoden. |
social_media |
basic/deep | Social-Media-Links. |
google_maps_url |
deep | Google Maps Such-URL. |
faq |
deep | Liste von FAQ Q&A-Paaren (falls vorhanden). |
Hinweis: Jedes Feld kann null sein, wenn es auf der Seite nicht vorhanden
ist.
⚙️Verwendung
- Konfigurieren Sie die Eingaben im Tab "Input" (setzen Sie
search_what,search_whereusw.). - Wählen Sie einen Proxy-Modus. Automatischer Apify-Proxy wird empfohlen.
- Klicken Sie auf Start.
- Überwachen Sie den Fortschritt im Tab Log.
- Greifen Sie auf die Ergebnisse unter Storage → Dataset zu.
Um Ihre Ergebnisse zu verbessern, testen Sie zunächst Ihre Suchbegriffe in den Gelben Seiten, um
herauszufinden, was am besten funktioniert.
Es wird empfohlen, die von den Gelben Seiten vorgeschlagenen Suchbegriffe für den Parameter
search_what zu verwenden.
🎯Anwendungsfälle
- Lead-Generierung und Kontaktgewinnung.
- Marktforschung und Wettbewerbsanalyse.
- Lokales SEO und Erstellung von Unternehmensverzeichnissen.
- Datenanreicherungs-Pipelines auf Apify.
- Finden von Top-bewerteten Unternehmen in bestimmten Gebieten mithilfe Bewertungs-basierter Sortierung.
- Zielgerichtetes Ansprechen von Unternehmen innerhalb präziser geografischer Grenzen mithilfe Radiusfilterung.
💲Preise
- 1000 Ergebnisse = 0,40 $ + Plattformnutzung:
- 1000 Einträge,
fast_search: ≈ 0,01 $, Laufzeit ~1,2 Min. - 1000 Einträge,
basic_search: ≈ 0,04 $, Laufzeit ~11 Min. - 1000 Einträge,
deep_search: ≈ 0,05 $, Laufzeit ~12 Min.
- 1000 Einträge,
🤖Andere Actors
🔗 Kombinieren Sie mit anderen Actors für leistungsstarke Workflows.
Sie können Ihre Datenverarbeitungspipelines verbessern, indem Sie den Gelbe Seiten Scraper mit anderen Apify Actors kombinieren.
Zum Beispiel könnten Sie auch Folgendes überprüfen:
- German Imprint Scraper - Finden und extrahieren Sie automatisch Kontaktinformationen von deutschen Impressumsseiten ("Impressum")
- Phone Number Formatter - Parsen, validieren und formatieren Sie Telefonnummern in großen Mengen über internationale Formate hinweg
🔗Integrationen
- Scheduler: Automatisierte tägliche/wöchentliche Läufe.
- Webhooks: Auslösen nachgelagerter Workflows nach Abschluss.
- API: Programmatische Steuerung über die Apify API.
- Composer: Verkettung mit anderen Actors (z. B. Reinigung, Anreicherung).
🛠️Wartung
- Autor: Dominic M. Quaiser
- Kontakt: [email protected]
- Website: dominic-quaiser.io