Kurzfassung: Dieser Leitfaden führt Sie Schritt für Schritt durch das Web-Scraping von Booking.com in Python: Abrufen von Suchergebnissen, Hotelseiten, Übernachtungspreisen und Gästebewertungen. Sie erhalten zwei sich ergänzende Methoden: einen Selenium-Wire-Workflow für mit JavaScript gerenderte Seiten und einen schnelleren Weg, der den internen /dml/graphql Endpunkt aufruft, sowie ein Anti-Block-Playbook, Währungsumrechnung und eine Umgehungslösung für die Begrenzung der Seitenanzeige auf etwa 1.000 Ergebnisse.Booking.com ist die Art von Datensatz, auf die Teams aus der Reise- und Gastgewerbebranche immer wieder zurückgreifen: aktuelle Übernachtungspreise, Positionierung der Konkurrenz, Angebot nach Stadtviertel, Gästebewertungen nach Unterkunft. Der Haken ist, dass nichts davon über eine offene API für die breite Öffentlichkeit zugänglich ist. Wenn Sie also programmgesteuert darauf zugreifen wollen, müssen Sie letztendlich selbst eine Form des Webscrapings bei Booking.com durchführen. Dieses Tutorial zeigt zwei praktische Python-Ansätze und verknüpft sie mit den produktionstechnischen Herausforderungen, die den meisten Anwendern in der zweiten Woche Probleme bereiten.
Zum Zeitpunkt der Erstellung dieses Artikels ist Booking.com eine der größten Unterkunftsplattformen im Internet mit Millionen buchbarer Unterkünfte, darunter Hotels, Resorts und Kurzzeitaufenthalte. (Wir halten uns bei den genauen Zahlen an Schätzungen; die öffentlichen Zahlen des Unternehmens schwanken.) Die Plattform ist stark JavaScript-basiert und verfügt über echte Anti-Bot-Maßnahmen, sodass naive requests.get Skripte scheitern oft, bevor sie überhaupt nützlich werden.
Sie werden sehen, wie man einen Selenium-basierten Scraper für Suchergebnisse ausführt, wie man dieselben Daten aus dem internen GraphQL-Endpunkt rückentwickelt, wie man Hotel-Detailseiten, Preise und Bewertungen abruft und wie man mit Sitemaps und Abfragepartitionierung die Ergebnisbegrenzung umgeht. Der Code ist in Python 3.10+ geschrieben und setzt voraus, dass Sie mit DevTools und CSS-Selektoren vertraut sind.




