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 und flexible Indexbereiche zur Steuerung der Paginierung oder zum Fortsetzen unterbrochener Läufe.

💡Funktionen

📥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 oder Diensts (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), deep_search (Zusammenfassung + alle Details). "basic_search" Nein
max_businesses Integer Maximale Anzahl zu speichernder Einträge. 0 für unbegrenzt (alle Ergebnisse). 0 Nein
start_index Integer 1-basierter Index des ersten zu speichernden Eintrags (nützlich zum Fortsetzen). 1 Nein
end_index Integer 1-basierter Index des letzten zu speichernden Eintrags (inklusive). 0 ignoriert dieses Limit. 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",
  "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": "[email protected]", // Dekodiert aus Base64
  "base64_emaillink": "aW5mb0BzY2huZWxsdGVzdC5kZQ==", // Raw Base64
  "webseitelink": "https://schnelltest.de", // Dekodiert aus Base64
  "base64_webseitelink": "aHR0cHM6Ly9zY2huZWxsdGVzdC5kZQ==", // Raw 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": "[email protected]",
  "base64_emaillink": "cmVzZXJ2aWVydW5nQG11c3Rlci1yZXN0YXVyYW50LmRl",
  "webseitelink": "https://www.muster-restaurant.de",
  "base64_webseitelink": "aHR0cHM6Ly93d3cubXVzdGVyLXJlc3RhdXJhbnQuZGU=",
  "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.
base64_emaillink fast/deep Raw Base64 E-Mail-Datenattribut.
webseitelink fast/deep Dekodierter Website-Link.
base64_webseitelink fast/deep Raw Base64 Website-Datenattribut.
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

  1. Konfigurieren Sie die Eingaben im Tab "Input" (setzen Sie search_what, search_where usw.).
  2. Wählen Sie einen Proxy-Modus. Automatischer Apify-Proxy wird empfohlen.
  3. Klicken Sie auf Start.
  4. Überwachen Sie den Fortschritt im Tab Log.
  5. Greifen Sie auf die Ergebnisse unter StorageDataset zu.

🎯Anwendungsfälle

💲Preise

🔗Integrationen

🛠️Wartung