Wie man AirBnB-Listing-Daten abruft
Robert Sfichi am 26. Mai 2021

Haben Sie sich schon einmal in der Situation befunden, den perfekten Ort für Ihren Urlaub zu finden? Oder vielleicht wollen Sie einfach nur herausfinden, wie Ihr Angebot mit dem Ihrer Nachbarn konkurriert. Wie auch immer, warum nutzen Sie nicht die Möglichkeiten des Web Scraping?
Ein Web Scraper ist eine Software, die Ihnen hilft, den mühsamen Prozess des Sammelns nützlicher Daten von Websites Dritter zu automatisieren. Die meisten Online-Dienste bieten Entwicklern Zugang zu einer API, damit sie Informationen von ihrer Website auslesen können. Leider gehört Airbnb nicht dazu. Hier kommen Web Scraper ins Spiel.
Warum sollte jemand die Daten von Airbnb auslesen?
Airbnb ist eine Plattform, die Menschen die Möglichkeit bietet, ihre Immobilien über eine Internetverbindung zu vermieten. Airbnb wurde 2008 von Brian Chesky, Nathan Blecharczyk und Joe Gebbia gegründet und hatte selbst während der Pandemie großen Erfolg.
Jeder kann die Angebote auf der Plattform finden, indem er einfach auf Airbnb zugreift und nach einem Ort sucht, aber es gibt keine einfache Möglichkeit, einen aussagekräftigen Datensatz mit den folgenden Informationen zu finden:
- Wie viele Inserate gibt es in einer Stadt?
- Wie sind sie bepreist?
- Wie sehen sie aus?
- Wie werden sie bewertet?
Natürlich haben Sie Ihre eigenen Gründe, warum Sie diese Informationen erhalten möchten, und ich bin sicher, dass wir Ihnen dabei helfen können.
Fangen wir an!
Extrahieren von Daten mit einer Web Scraping API
Damit Sie alle erforderlichen Daten extrahieren können, müssen Sie die folgenden Schritte befolgen.
1. Einsichtnahme in den Quellcode
Überprüfen Sie die Elemente, die Sie von der Airbnb-Website kopieren möchten. Wenn Sie mit der rechten Maustaste auf eine beliebige Stelle auf der Seite klicken und die Option "Inspect" (Untersuchen) auswählen, werden die Developer Tools angezeigt.
Nehmen wir an, wir möchten den Preis, das Bild, den Typ und die Bewertung der Orte, die wir durchsuchen, erhalten.
Zunächst suchen wir das gemeinsame Element im DOM. Es scheint, dass _gigle7 das ist, wonach wir suchen.

2. Auswahl eines Web Scrapers
Um die besten Ergebnisse zu erzielen, empfehlen wir die Verwendung unseres Dienstes WebScrapingAPI, auf den sich unser Tutorial stützen wird. Sie können ihn kostenlos ausprobieren, indem Sie auf diesen Link zugreifen. Erstellen Sie ein Konto und kehren Sie zu dieser Seite zurück, wenn Sie fertig sind.
Nachdem Sie sich angemeldet haben, rufen Sie die Dashboard-Seite auf. Hier finden Sie Ihren privaten API-Zugangsschlüssel, den wir für die Anfragen verwenden, den API-Spielplatz, auf dem Sie unser Produkt testen können, und die Dokumentation.

3. Einrichtung des Projekts
Nachdem Sie einen Ordner für das Projekt erstellt haben, führen Sie die folgenden Befehle aus:
npm init -y
npm install got jsdom
Um die Anfragen zu stellen, installieren wir das got-Modul, und für unsere HTML-Parsing-Bedürfnisse werden wir das jsdom-Paket verwenden.
Erstellen Sie eine neue Datei namens "index.js" und öffnen Sie sie.
4. Den Antrag stellen
Legen Sie die Parameter fest, stellen Sie die Anfrage und analysieren Sie das HTML. Schreiben Sie die folgenden Zeilen in die zuvor erstellte Datei:
const {JSDOM} = require("jsdom")
const got = require("got")
(async () => {
const params = {
api_key: "YOUR_API_KEY",
url: "https://www.airbnb.com/s/Berlin/homes?tab_id=home_tab&refinement_paths%5B%5D=%2Fhomes&flexible_trip_dates%5B%5D=april&flexible_trip_dates%5B%5D=may&flexible_trip_lengths%5B%5D=weekend_trip&date_picker_type=calendar&source=structured_search_input_header&search_type=filter_change&place_id=ChIJAVkDPzdOqEcRcDteW0YgIQQ&checkin=2021-04-01&checkout=2021-04-08"
}
const response = await got('https://api.webscrapingapi.com/v1', {searchParams: params})
const {document} = new JSDOM(response.body).window
const places = document.querySelectorAll('._gig1e7')
})()
Wie wir bereits erwähnt haben, befinden sich alle relevanten Informationen unter dem Element _gigle7, also werden wir alle Elemente abrufen, die der Klasse _gigle7 zugeordnet sind. Sie können sich auf dem Bildschirm anmelden, indem Sie eine console.log()-Aktion direkt nach der Zeile hinzufügen, in der wir die Orte konstant definieren.
console.log(Orte)
5. Abrufen der Daten im JSON-Format
Von nun an werden wir tiefer gehen, um die spezifischen Elemente zu erhalten, die den Preis, den Bildtyp und die Bewertungsinformationen enthalten.
Kopieren Sie nach den zuvor vorgestellten Codezeilen den folgenden Text:
const results = []
places.forEach(place => {
if (place) {
const price = place.querySelector('._ls0e43')
if (price) place.price = price.querySelector('._krjbj').innerHTML
const image = place.querySelector('._91slf2a')
if (image) place.image = image.src
const type = place.querySelector('._b14dlit')
if (type) place.type = type.innerHTML
const rating = place.querySelector('._10fy1f8')
if (rating) place.rating = rating.innerHTML
results.push(place)
}
})
console.log(results)
Wie Sie sehen, holen wir für jedes Angebot, das wir auf der ersten Seite erhalten, das Preisschild-Element, die Bildquelle, den Typ des Angebots und die Bewertung. Am Ende haben wir ein Array von Objekten, und jedes von ihnen enthält jedes Element in dieser Liste.
Nachdem wir nun den gesamten Code geschrieben haben, der für das Scrapen der Airbnb-Informationen erforderlich ist, sollte die Datei index.js etwa so aussehen:
const {JSDOM} = require("jsdom");
const got = require("got");
(async () => {
const params = {
api_key: "YOUR_API_KEY",
url: "https://www.airbnb.com/s/Berlin/homes?tab_id=home_tab&refinement_paths%5B%5D=%2Fhomes&flexible_trip_dates%5B%5D=april&flexible_trip_dates%5B%5D=may&flexible_trip_lengths%5B%5D=weekend_trip&date_picker_type=calendar&source=structured_search_input_header&search_type=filter_change&place_id=ChIJAVkDPzdOqEcRcDteW0YgIQQ&checkin=2021-04-01&checkout=2021-04-08"
}
const response = await got('https://api.webscrapingapi.com/v1', {searchParams: params})
const {document} = new JSDOM(response.body).window
const places = document.querySelectorAll('._gig1e7')
const results = []
places.forEach(place => {
if (place) {
const price = place.querySelector('._ls0e43')
if (price) place.price = price.querySelector('._krjbj').innerHTML
const image = place.querySelector('._91slf2a')
if (image) place.image = image.src
const type = place.querySelector('._b14dlit')
if (type) place.type = type.innerHTML
const rating = place.querySelector('._10fy1f8')
if (rating) place.rating = rating.innerHTML
results.push(place)
}
})
console.log(results)
})()
Wie Sie sehen, ist das Scrapen von Airbnb-Daten mit WebScrapingAPI ziemlich einfach.
- Stellen Sie eine Anfrage an WebScrapingAPI mit den erforderlichen Parametern: dem API-Schlüssel und der URL, von der wir Daten abrufen wollen.
- Laden Sie das DOM mit JSDOM.
- Wählen Sie alle Angebote aus, indem Sie eine bestimmte Klasse suchen.
- Für jedes Angebot erhalten Sie das Preisschild, das Bild, den Angebotstyp und die Bewertung.
- Fügen Sie jede Stelle in ein neues Array namens results ein.
- Protokollieren Sie das neu erstellte Ergebnisfeld auf dem Bildschirm.
Die Antwort sollte in etwa so aussehen:
[
HTMLDivElement {
price: '$47 per night, originally $67',
image: 'https://a0.muscache.com/im/pictures/miso/Hosting-46812239/original/c56d6bb5-3c2f-4374-ac01-ca84a50d31cc.jpeg?im_w=720',
type: 'Room in serviced apartment in Friedrichshain',
rating: '4.73'
},
HTMLDivElement {
price: '$82 per night, originally $109',
image: 'https://a0.muscache.com/im/pictures/miso/Hosting-45475252/original/f6bd7cc6-f72a-43ef-943e-deba27f8253d.jpeg?im_w=720',
type: 'Entire serviced apartment in Mitte',
rating: '4.80'
},
HTMLDivElement {
price: '$97 per night, originally $113',
image: 'https://a0.muscache.com/im/pictures/92966859/7deb381e_original.jpg?im_w=720',
type: 'Entire apartment in Mitte',
rating: '4.92'
},
HTMLDivElement {
price: '$99 per night, originally $131',
image: 'https://a0.muscache.com/im/pictures/f1b953ca-5e8a-4fcd-a224-231e6a92e643.jpg?im_w=720',
type: 'Entire apartment in Prenzlauer Berg',
rating: '4.90'
},
HTMLDivElement {
price: '$56 per night, originally $61',
image: 'https://a0.muscache.com/im/pictures/bb0813a6-e9fe-4f0a-81a8-161440085317.jpg?im_w=720',
type: 'Entire apartment in Tiergarten',
rating: '4.67'
},
...
]
Eine der Einschränkungen, mit denen wir derzeit konfrontiert sind, ist, dass wir die Informationen nur von einer Seite unserer Suche abrufen. Dies kann durch die Verwendung einer Art von Headless-Browser wie Puppeteer oder eines Browser-Automatisierungstools wie Selenium behoben werden. Damit können wir die meisten Dinge tun, die wir manuell in einem Webbrowser erledigen können, wie das Ausfüllen eines Formulars oder das Anklicken einer Schaltfläche.
Wenn Sie mehr über diese Technologien erfahren möchten, empfehlen wir Ihnen unseren Ultimate Guide to Web Scraping with JavaScript and Node.Js.
Die Macht des Web Scraping
Wie Sie sehen, haben wir es geschafft, in nur wenigen Minuten einen einfachen Web Scraper zu bauen. Von hier an sind Ihrer Fantasie keine Grenzen gesetzt. Wenn Sie ehrgeizig genug sind, können Sie die gesammelten Daten sogar nutzen, um die Verteilung und Konzentration der Objekte auf einer Karte zu visualisieren. Airbnb stellt Ihnen alle notwendigen Informationen am Anfang jeder Angebotsseite zur Verfügung.
Wie Sie sehen, kann Web Scraping eine der unterhaltsamsten Möglichkeiten sein, Ihre Zeit als Softwareentwickler zu verbringen. Sie können ganz einfach alle Daten abrufen, die Sie benötigen, um eine neue Anwendung für eine bestimmte Nische zu erstellen oder einfach nur Ihre Fähigkeiten zu trainieren. Wenn Sie Probleme mit dem Prozess haben, zögern Sie nicht, in den Kommentaren um Hilfe zu bitten, wir helfen Ihnen gerne!
Wenn dieser Artikel Ihnen nicht geholfen hat, die Möglichkeiten des Web Scraping vollständig zu verstehen, können Sie sich ein weiteres Beispiel ansehen, wie Unternehmen einen Web Scraper Schritt für Schritt aufbauen können.
Vielen Dank für Ihre Zeit! Viel Spaß beim Schaben!
Nachrichten und Aktualisierungen
Bleiben Sie auf dem Laufenden mit den neuesten Web Scraping-Anleitungen und Nachrichten, indem Sie unseren Newsletter abonnieren.
We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Ähnliche Artikel

Erforschen Sie die transformative Kraft des Web Scraping im Finanzsektor. Von Produktdaten bis zur Stimmungsanalyse bietet dieser Leitfaden Einblicke in die verschiedenen Arten von Webdaten, die für Investitionsentscheidungen zur Verfügung stehen.


Eintauchen in die transformative Rolle von Finanzdaten bei der Entscheidungsfindung in Unternehmen. Verstehen Sie traditionelle Finanzdaten und die aufkommende Bedeutung alternativer Daten.


Hallo, wenn Sie daran interessiert sind, Web Scraping im Jahr 2023 zu lernen und nach den besten Online-Kursen suchen, sind Sie hier genau richtig.
