Wir testeten sechs Web-Scraping-Anbieter auf Airbnb und sendeten insgesamt 1.500 Anfragen an alle Anbieter. Jeder Anbieter erhielt die gleichen URLs von Ferienwohnungen und wurde hinsichtlich Bearbeitungszeit, Erfolgsquote und der Anzahl der verfügbaren Metadatenfelder pro Angebot bewertet.
Airbnb-Scraping-Benchmark
Weitere Einzelheiten zu unserem Testverfahren finden Sie in unserer Benchmark-Methodik .
Verfügbare Metadatenfelder nach Anbieter
Die Anfragen Bright Data und Apify lieferten beide strukturiertes JSON für Airbnb. Bright Data enthielt 48 Felder pro Angebot, Apify 36. Die folgenden Tabellen gruppieren die individuellen Felder jedes Anbieters nach Kategorie; gemeinsame Felder sind am Ende aufgeführt.
Bright Data eindeutige Metadatenfelder
Apify eindeutige Metadatenfelder
Felder, die beide Anbieter zurückgeben
amenities , breadcrumbs , cancellation_policy , description (einfache und HTML cancellationPolicies Version), highlights , house_rules , houseRules images location , timestamp , title , url
Airbnb-Benchmark-Ergebnisse auslesen
Bright Data erreichte die höchste Erfolgsquote bei Airbnb mit 99 % und lieferte mit 48 strukturierten Feldern pro Inserat die meisten Metadaten aller Anbieter. Die Daten umfassten Gastgeberinformationen, Preisaufschlüsselungen, Stornierungsbedingungen und Zusammenfassungen von Bewertungen, die andere Anbieter nicht bereitstellten.
Oxylabs erzielte bei Airbnb eine Erfolgsquote von 98 %. Das Ergebnis blieb während des gesamten Tests konstant, ohne nennenswerte Einbrüche. Zwar bot es keine herausragende Datenfülle, lieferte aber eine zuverlässige Datenextraktion in einem Bereich, in dem einige Anbieter Schwierigkeiten hatten.
Decodo erreichte auf Airbnb eine Erfolgsquote von 93 % mit einer allgemeinen Scraping-Konfiguration anstelle einer Airbnb-spezifischen Einrichtung. Die Erfolgsquote war zwar niedriger als bei der Spitzengruppe, aber für die meisten Test-URLs blieb sie dennoch brauchbar.
Apify erreichte außerdem eine Erfolgsquote von 99% auf Airbnb und war einer von zwei Anbietern, die strukturiertes JSON zurückgaben und 36 Metadatenfelder pro Eintrag lieferten.
Die URL Zyte erzielte bei Airbnb eine Erfolgsquote von 98 %. Obwohl HTML-Daten anstelle strukturierter Daten zurückgegeben wurden, waren die Ergebnisse über den gesamten URL-Satz hinweg konsistent. Sie zählte zu den zuverlässigeren Optionen für diese Domain.
Nimble erreichte bei Airbnb eine Erfolgsquote von 12 %, was deutlich unter dem Durchschnitt lag. Die niedrige Erfolgsquote deutet darauf hin, dass die Rendering-Engine von Nimble die Seitenstruktur von Airbnb für die meisten getesteten URLs nicht korrekt verarbeiten konnte. Airbnb war der einzige Anbieter im Benchmark, bei dem die Datenextraktion eine erhebliche Herausforderung darstellte.
Benchmark-Methodik
Wir haben sechs Web-Scraping-Anbieter (Apify, Bright Data, Decodo, Oxylabs, Nimble, Zyte) auf airbnb.com getestet.
Datensatz
Wir haben 250 Produktseiten-URLs von Airbnb vorbereitet. Produktseiten sind einzelne Objektangebote mit Details wie Titel, Preis, Bewertung, Rezensionen und Gastgeberinformationen.
Alle URLs enthielten die Abfrageparameter check_in, check_out und adults, um sicherzustellen, dass die Preisdaten auf der Seite angezeigt wurden. Nicht standardmäßige Subdomains (z. B. es.airbnb.com, hr.airbnb.com) wurden während der Datenaufbereitung in www.airbnb.com korrigiert. Alle URLs wurden vor dem Benchmark auf Erreichbarkeit geprüft.
Gemeinsame Konfiguration
Alle Anbieter erhielten identische URLs aus demselben Datensatz und wurden unter denselben Bedingungen getestet:
- Sequenzielle Ausführung: jeweils eine Anfrage, keine parallelen Anfragen
- Verzögerung zwischen den Anfragen: 2 Sekunden
- Ratenbegrenzungsbehandlung: 30 Sekunden Wartezeit mit bis zu 3 Wiederholungsversuchen bei HTTP 429
- Zeitlimit für die Einreichung: 300 Sekunden
- Ausführungs-Timeout: 600 Sekunden
- Jede URL wurde einmal pro Anbieter getestet.
Anbieterkonfigurationen
Apify
Apify verwendete den tri_angle/airbnb-rooms-urls-scraper-Actor, der strukturiertes JSON mit geparsten Feldern zurückgibt. Es war kein Parsen von CSS-Selektoren erforderlich. Die Actor-Läufe wurden im Sekundentakt abgefragt, bis der Status „SUCCEEDED“ erreichte.
Bright Data
Bright Data nutzte die Dataset-API (dataset_id: gd_ld7ll037kqy322v05), die strukturiertes JSON mit geparsten Feldern zurückgibt. Die Dataset-API wurde über den Endpunkt /progress/{snapshot_id} im Sekundentakt abgefragt, bis der Status „Bereit“ erreicht war. Anschließend wurden die Ergebnisse über den Endpunkt /snapshot/{snapshot_id} abgerufen.
Decodo (Smartproxy)
Decodo nutzte die Universal Scraper API (target: universal, headless: html), die JavaScript-gerendertes HTML zurückgibt. Die Antwort wurde lokal mit CSS-Selektoren analysiert. Alle Anfragen enthielten einen Desktop-User-Agent-Header.
Oxylabs
Oxylabs nutzte die Echtzeit-API mit source: airbnb und render: html, was JavaScript-gerendertes HTML zurückgibt. Die Antwort wurde lokal mit CSS-Selektoren analysiert.
Nimbleway
Nimble nutzte die Extract API mit render: true und driver: vx10 (Stealth-Headless-Browser). Die Antwort wurde lokal mit CSS-Selektoren analysiert. Es wurde keine domänenspezifische Konfiguration angewendet.
Zyte
Zyte nutzte die Extract API mit browserHtml: true, wodurch JavaScript-gerendertes HTML über einen Headless-Chromium-Browser zurückgegeben wurde. Die Antwort wurde lokal mit CSS-Selektoren analysiert. Es wurde keine domänenspezifische Konfiguration angewendet.
Validierung
HTTP-Statusprüfung
Vor der Validierung wird zunächst der HTTP-Antwortcode des Anbieters geprüft. Antworten mit Statuscodes zwischen 200 und 399 sowie 404 gelten als erfolgreiche Übermittlungen und werden zur Validierungsphase weitergeleitet. Alle anderen Statuscodes (400, 403, 500, 550 usw.) werden als fehlgeschlagene Übermittlung gewertet, und der Test wird sofort als fehlgeschlagen markiert, ohne die Validierungsphase zu erreichen.
Validierungsregeln
Tests, die die HTTP-Statusprüfung bestehen, werden in der folgenden Reihenfolge validiert:
- 404-Fehlererkennung : Wenn der Seiteninhalt oder ein API-Fehler darauf hinweist, dass die Seite nicht mehr existiert („Seite nicht gefunden“, „existiert nicht“, „tote Seite“), wird der Test als gültig markiert. Der Anbieter hat die nicht verfügbare Seite korrekt identifiziert.
- Datenextraktion (JSON-API) : Bei Anbietern, die strukturiertes JSON zurückgeben, muss mindestens ein Datenfeld vorhanden und nicht leer sein. Der gültige Datentyp (Zeichenkette oder Ganzzahl) hängt vom jeweiligen Feld ab. Zu den geprüften Feldern gehören Titel, Preis, Bewertung und Rezensionen.
- Datenextraktion (HTML) : Bei Anbietern, die HTML zurückgeben, wird die Antwort mithilfe von Airbnb-spezifischen CSS-Selektoren analysiert. Wenn mindestens ein Selektor übereinstimmt und einen Wert zurückgibt, der nicht leer ist, gilt der Test als bestanden.
- Seitenindikator (nur HTML): Wenn keine Daten extrahiert wurden, aber mindestens einer der vordefinierten CSS-Selektoren für Airbnb auf ein Element der Seite zutrifft, wird der Test als gültig markiert. Dies bestätigt, dass die Seite gerendert und geladen wurde, selbst wenn keine strukturierten Daten in den erwarteten Containern gefunden wurden. Trifft keine der oben genannten Bedingungen zu, schlägt der Test fehl. Häufige Fehlerursachen sind Captcha-/Bot-Abfragen, unzureichendes JavaScript-Rendering, Proxy-Verbindungsfehler und Crawler-Fehler.
Kennzahlen
Validierungserfolgsrate : Der Prozentsatz der getesteten URLs, bei denen der Anbieter verwertbare Daten zurückgegeben hat, berechnet als erfolgreiche Tests geteilt durch die Gesamtzahl der Tests.
Bearbeitungszeit: Die Gesamtzeit vom Absenden der Abfrageanfrage bis zum Empfang der validierten Ergebnisse, gemessen in Sekunden. Bei asynchronen Anbietern wurde der Abschlussstatus im Sekundentakt abgefragt. Angegeben wird der arithmetische Mittelwert aller Durchläufe einer Gruppe.
Verfügbare Metadaten : Die Anzahl der eindeutigen Feldnamen, die der Anbieter über alle Elemente einer Antwort hinweg zurückgibt. Gilt nur für JSON-API-Antworten.
FAQs
Je nach Anbieter können die extrahierten Airbnb-Daten unter anderem den Titel des Angebots, den Preis pro Nacht, die Lage, den Unterkunftstyp, die Anzahl der Schlaf- und Badezimmer, Gastgeberinformationen, die maximale Gästeanzahl, die Ausstattung, Kundenbewertungen, Check-in-/Check-out-Regeln, Stornierungsbedingungen und Verfügbarkeitskalender umfassen. Anbieter, die strukturiertes JSON zurückgeben, liefern in der Regel mehr Felder als die HTML-basierte Datenextraktion.
Ja, die meisten Anbieter können Gesamtbewertungen und einzelne Rezensionen von Airbnb-Inseraten extrahieren. Einige strukturierte APIs liefern den Rezensionstext, den Namen des Rezensenten, das Datum und Kategoriebewertungen (Sauberkeit, Kommunikation usw.) als separate Felder. HTML-basierte Anbieter liefern die auf der Seite angezeigten Rezensionen.
Ja, Airbnb verwendet weltweit dieselbe URL-Struktur. Angebote aus jedem Land können mit derselben Provider-Konfiguration abgerufen werden. Achten Sie darauf, dass die URLs die Domain www.airbnb.com und nicht lokale Subdomains (z. B. es.airbnb.com oder ar.airbnb.com) verwenden, da einige Provider regionale Subdomains nicht korrekt auflösen.
Die größten Herausforderungen sind dynamisches JavaScript-Rendering, Bot-Erkennung und unvollständige Daten aufgrund fehlender URL-Parameter. Anbieter mit Headless-Browser-Rendering oder dedizierten Airbnb-APIs lösen die ersten beiden Probleme. Für vollständige Preisinformationen sollten die Parameter `check_in`, `check_out` und `adults` immer in den Angebots-URLs enthalten sein. In unserem Benchmark erreichte ein Anbieter aufgrund von Rendering-Fehlern eine Erfolgsquote von nur 12 %, während andere mit dedizierten Konfigurationen über 93 % erzielten.
Seien Sie der Erste, der kommentiert
Ihre E-Mail-Adresse wird nicht veröffentlicht. Alle Felder sind erforderlich.