ImmobilienScout24 Mining Teil 2: Datenbeschaffung

Statistik ist nicht gleich Statistik

„Einer Studie zufolge liegt die durchschnittliche Körpergröße der Deutschen bei 1,45m.“ Was genau lässt einen am Ergebnis einer solchen Studie zweifeln? Klar, das Ergebnis ist absurd. Doch wie würde es bei 30cm mehr aussehen?

Grundsätzlich glauben wir Studien mehr, wenn sie dem entsprechen, was wir eh schon glauben. Viel wichtiger als was wir glauben ist allerdings, wie das Ergebnis einer Studie zustande gekommen ist. Nun, die oben erwähnte Studie habe ich vorhin nach Feierabend selbst durchgeführt. Auf der Straße sah ich zwei Drittklässler und habe ihre Größe geschätzt. Dann habe ich den Durchschnitt berechnet fertig war das Ergebnis.

Dass diese Studie so unglaubwürdig ist liegt natürlich an der unterirdischen Repräsentativität. Für eine fundierte Statistik ist es zwingend, eine ausreichend große Stichprobe zu untersuchen! Dies gilt genauso für das Thema dieser Artikelreihe. Um auch nur irgendeinen Trend oder Zusammenhang zwischen verschiedenen Merkmalen einer Wohnung auszumachen, braucht man mehr Wohnungen als man mit den Händen abzählen kann.

Wie kommt man an die Daten?

Es gibt mehrere Wege, mit denen man an die Daten einer Internetseite herankommt. Die simpelste und gleichzeitig zeitaufwendigste Methode ist Copy and Paste (an dieser Stelle Respekt an Larry Tesler, der diese Funktion in den 70er Jahren entwickelte). Einfach die gewünschten Textfelder im jeweiligen Wohnungsangebot in eine Excel-Datei kopieren und fertig. Ach ja: Um eine vernünftige Datenbasis aufzubauen, sollte dieses Prozedere übrigens ein paar tausendmal wiederholt werden. Tatsächlich habe ich auf die weise schon Daten gesammelt und die tagelange monotone Arbeit war ein Graus!

Geht das nicht irgendwie automatisch?

Ja! Und zwar hast du hierbei mehrere Optionen. Zum Beispiel kannst du mit einer API (Application Programming Interface ) arbeiten. Eine API ist eine Schnittstelle, mit deren Hilfe in unserem Fall externe Anwendungen mit dem Server von ImmobilienScout kommunizieren können. ImmobilienScout besitzt so eine API. Jedoch kann man nicht ohne weiteres mit dieser API arbeiten. Um sogenannte Requests an die API zu senden und dann auch sinnvolle Antworten zu bekommen, muss man sich als Anwender der ImmobilienScout API registrieren. Anschließend kann man diese zwar benutzen, doch sollte man sich erst einmal die Dokumentation sorgfältig anschauen.

Ein anderer Weg ist, die Daten „selbst“ von der Seite zu holen. Aber dieses Mal ohne Copy and Paste. Gemeint ist ein sogenannter Screen Scraper.  Solch ein Programm kratzt sozusagen das ab, was man als Benutzer auf dem Bildschirm sieht. Genauer gesagt kann ein Screen Scraper durch das Internet navigieren, den Quellcode einer Homepage  durchforsten und diesen ganz oder in Teilen abspeichern. Wie genau der für Immobilienscout benutzte Screen-Scraper funktioniert (inklusive Code), erfährst du in einem eigenständigen Beitrag.

Wonach sucht der Scraper bei ImmobilienScout24?

Im Großen und Ganzen besucht er ImmobilienScout24 und guckt hier nach den neuesten Angeboten aus ganz Deutschland. Gefiltert wird nur nach der Art der Immobilie, und zwar nach Mietwohnungen. Von jedem der 20 Angebote auf der ersten Ergebnisseite durchsucht der Scraper den Quellcode nach den für uns interessanten Merkmalen:

Bundesland, Landkreis, Ort, Heizart, Neubau ja/nein, Balkon vorhanden, Kalt- und Warmmiete, Einbauküche vorhanden, Keller vorhanden, Baujahr, Postleitzahl, Straße, Hausnummer, Zustand, Qualität, Haustiere erlaubt, Aufzug vorhanden, Anzahl der Räume, Betreutes Wohnen ja/nein, Garten vorhanden, Barrierefreiheit ja/nein, Etage, Anzahl der Etagen im ganzen Haus

Diese werden in einer Tabelle abgelegt, welche dann auf der Festplatte gespeichert wird. Anschließend schläft der Scraper 60 Sekunden, bis er eine neue Runde startet. Er wartet quasi einen Moment, damit beim nächsten Besuch der Seite wieder neue Angebote zu finden sind. Diesen ganzen Prozess kann man beliebig lang laufen lassen. Am Tag kommen so schon mal rund 20.000 Wohnungsangebote zusammen. Unter diesen Angeboten befinden sich wahrscheinlich viele Duplikate, weil nicht konstant in so kurzen Abständen neue Angebote auf der Seite erscheinen. Momentan läuft der Scraper noch und das Ziel ist eine Datenbasis von über 100.000 verschiedenen Wohnungsangeboten.

Im nächsten Artikel fangen wir mit der Analyse der Daten an. Bleibt dran, bis zum nächsten Mal!

Chris

4 Gedanken zu „ImmobilienScout24 Mining Teil 2: Datenbeschaffung

  • 30. Oktober 2020 um 10:34
    Permalink

    Bin noch am Lesen aber klingt jetzt schon sehr interessant da ich mich gerade (sehr laienhaft) mit dem Thema Web Scraping bei immoscout beschäftige.

    Die Überschrift „Wie kommt man die Daten?“ könnte ein ‚be‘ oder ‚an‘ vertragen 😉

    Antwort
    • 9. November 2020 um 08:43
      Permalink

      Hi Daniel,

      danke für den Hinweis und es freut mich, dass dir der Inhalt gefällt.
      Leider blockt Immobilienscout seit einiger Zeit konsequent Webscraper, also die hier gezeigte Methode funktioniert nicht mehr…
      Vielleicht findest du ja einen Weg, wie man trotzdem an die Daten kommt. Wenn du das schaffst, dann lass es mich gerne wissen!

      Viele Grüße
      Chris

      Antwort
  • 12. Februar 2021 um 21:39
    Permalink

    Hallo Chris,

    fand deinen Blog sehr interessant. Suche auch nach einer Möglichkeit Immobilienscout und Immowelt Daten zu sammeln zumindest für eine bestimmte Region. Du schreibst oben am 09. Nov. 20 , dass es aber nicht mehr ginge weil Scout das verhindere. Ist das noch dein aktueller Stand? Weil wenn ein Profi wie du sagst es geht nicht, brauche ich es als Laie erst gar nicht probieren.

    Antwort
    • 23. Februar 2021 um 19:59
      Permalink

      Hi Kenny, danke für dein Interesse. 🙂 Also ich sag mal so… Es gibt Wege. Ich weiß nur nicht, wie legal diese sind und will sie auch ungern hier präsentieren. Es gäbe zum Beispiel die Möglichkeit, innerhalb des Skripts mit rotierenden Proxies zu arbeiten. Ich persönlich kenne Leute, die die Bot-Erkennung von Immoscout umgehen und weiter scrapen. Also wenn du einen Weg findest, dann go for it 😉

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.