Wie man AirBnB-Listing-Daten abruft

Robert Sfichi am 26. Mai 2021

blog-image

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.

blog-image

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.

blog-image

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.

  1. Stellen Sie eine Anfrage an WebScrapingAPI mit den erforderlichen Parametern: dem API-Schlüssel und der URL, von der wir Daten abrufen wollen.
  2. Laden Sie das DOM mit JSDOM.
  3. Wählen Sie alle Angebote aus, indem Sie eine bestimmte Klasse suchen.
  4. Für jedes Angebot erhalten Sie das Preisschild, das Bild, den Angebotstyp und die Bewertung.
  5. Fügen Sie jede Stelle in ein neues Array namens results ein.
  6. 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

Vorschaubild
AnwendungsfälleNutzung von Web Scraping für alternative Daten im Finanzwesen: Ein umfassender Leitfaden für Investoren

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.

Mihnea-Octavian Manolache
Autorenavatar
Mihnea-Octavian Manolache
13 Minuten lesen
Vorschaubild
AnwendungsfälleEntfesseln Sie die Macht der Finanzdaten: Erkundung traditioneller und alternativer Daten

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

Suciu Dan
Autorenavatar
Suciu Dan
8 Minuten lesen
Vorschaubild
Wissenschaft des Web ScrapingDie besten Web-Scraping-Kurse - Finden Sie heraus, welcher der beste für Sie ist

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.

Ștefan Răcila
Autorenavatar
Ștefan Răcila
4 Minuten lesen