Daten Sammeln

Kassenbons scannen

1. März

Belege in Papierform enthalten wertvolle Daten, doch es ist nicht ganz einfach, diese zu extrahieren.

Weiterlesen
Kiosk-Kaufbeleg
Daten

Speisekarten-Analyse

18. Dezember

Daten aus Restaurant-Menus zu extrahieren ist gar nicht so einfach. Das Format «PDF» stellt sich gerne quer.

Weiterlesen
Speisekarte eines Restaurants

Die neuesten Beiträge

Google-Suchergebnisse als Excel-Tabelle

Eine Hands-On-Anleitung

Der Ausdruck «Hands-On» ist nicht zufällig gewählt: Es geht um Web-Scraping in Handarbeit - oder zumindest teilweise in Handarbeit.

Ausgangslage: Ich sehe eine Seite voller Suchergebnisse vor mir und möchte diese gerne zur weiteren Auswertung als Tabelle ablegen und in dieser Tabelle nur das aufführen, was mich interessiert.

Randbedingungen: Google verbietet in seinen Nutzungsbedingungen das automatische Abgrasen seiner Suchergebnisse. Das ist verständlich, denn des massenhafte Abrufen von Suchresultaten kostet Rechenzeit und damit Geld - Geld, für das Google nichts zurückbekommt. Wir bleiben jedoch im Rahmen der Nutzungsbedingungen, wenn wir die Suche von Hand im Browser ausführen.

Vorgehen: Mir Ctrl-A, Ctrl-C den gesamten Text der Suchergebnisseite kopieren. Mit "Paste special > Values only" in ein leeres Google Sheet einfügen.

Nun müssen wir nur noch das Ergebnis normalisieren, und das bedeutet in unserem Zusammenhang: Alles löschen, was wir nicht brauchen - etwa die ersten 26 Zeilen, die letzten 10 Zeilen und einige Zeilen dazwischen.

Das Endergebnis sollte eine Liste sein, bei der Zeile 4 leer ist und Zeile 7 mit 'https://' beginnt. Dieses Muster muss sich auf den Zeilen 11 und 14, 18 und 21 ... wiederholen.

Diese Regularität ist wichtig, denn sie erlaubt es uns, für jede Domain die zugehörigen Zeilen zu identifizieren. Als nächstes fügen wir eine neue Spalte links vom Text ein und füllen diese vertikal mit 'Leer, Title, TZ1, Domain, TZ2, TZ3, TZ4'.

Nun haben wir Eine Liste von Gruppen, die durch leere Zeilen getrennt sind und bei denen jeweils die dritte nicht-leere Zeile den Link zur Domain des Suchresultats enthält. Dieser Link ist allerdings in den meisen fällen nicht «sauber», sondern weist einen «Anhang» auf, der mit einem Leerschlag und einem Kleiner-Zeichen (<) beginnt. Diesen können wir los werden, indem wir rechts vom Text eine Spalte einfügen und in dieser Spalte auf der betreffenden Zeile folgende Funktion eintragen =REGEXEXTRACT(C7,"^https\S+")

Der numerische Rang einer Domain in den Suchergebnissen lässt sich ausweisen, indem man eine weitere Spalte einfügt und mit der Formel =IF(C7="Domain",INT(A7/7),"") beschickt.

Link: Beispiel-Spreadsheet mit Google-Suchergebnissen

Gut und recht, aber das ist ja extrem aufwändig und kompliziert!

Das ist es in der Tat. Und deshalb sollte man es automatisieren. Man kann all das, was hier manuell erledigt wurde, von einem oder mehreren Scripts erledigen lassen. Dann geht es im Handumdrehen, und am Ende erhält man eine saubere und übersichtliche Tabelle, die genau das zeigt, was man sehen möchte, und alles andere weg lässt.