Funktion importxml bei google Spreadsheets

Google Spreadsheets erlaubt es mit der Funktion Importxml Daten von Internetseiten zu ziehen. Im Zuge von Datenanalysen und auch zur Überwachung von meinen betreuten Internetseiten greife ich gerne auf dieses Tool zurück. Beispiele für sinnvolle Anwendungen sind beispielsweise das Ziehen von Listen aus dem Internet, aber das ist nur ein kleiner Bruchteil dessen zu dem das Tool fähig ist.

Erste Schritte

Um den Befehl zu nutzen, trage in einem Spreadsheet von google, den Befehl “=importxml(URL, Abfrage)” ein. Für die URL nimmst du einfach die entsprechende Adresse, beispielsweise “http://scripting-geek.de/blog”. Für die Abfage wird eine XPath Abfrage genutzt. Als einfachste Beispiele bieten sich an:

  • =importxml("http://scripting-geek.de/blog","//a") . Damit wird der Inhalt der Achortexte angezeigt.
  • =importxml("http://scripting-geek.de/blog","//div") ergibt eigentlich den kompletten Inhalt der Seite
  • =importxml("http://scripting-geek.de/blog","//ul")zeigt die einzelnen Listeneinträge an.
  • =importxml("http://scripting-geek.de/blog","//span")ergibt den Inhalt der span Elemente im Quellcode.

Diese Funktionen sind sehr allgemein und werden in der Regel bei längeren Quellcodes deutlich mehr liefern, als man eigentlich benötigt. Hinzukommt, dass man eigentlich nicht die wichtigen von den unwichtigen sortieren will.

Mit der Logik =importxml("http://scripting-geek.de/blog","//div[@class='postmeta']")lässt sich genau eine spezielle Klasse von div ansprechen. (In diesem Falle zeigt es den kompletten Content der Seite an.) Damit wird die Ausgabe deutlich kleiner und ansehnlicher. Als kleiner Tipp lohnt sich ein kurzer Blick in den Quellcode – mit Google Chrome über den Shortcut [STRG]+U. Diese Methodik ist nicht nur auf “div” beschränkt und lässt sich auf alle der oben genannten Abfragen anwenden. Hierdurch lassen sich spezielle Komponenten einer Internetseite ansprechen.

Weiterführende Befehle

In einem Quellcode kommt es häufig vor, dass mehrere Klassen ineinander verschachtelt sind und dort lässt sich diese XPath abfrage analog zu oben ausführen.
Mit einer Abfrage wie “//div[@class=’…’]//span[@class=’ … ‘] ” lässt sich innerhalb einer div-Klasse genau eine Span-Klasse ansprechen.

Der große Nutzen von diesem Tool ist aber die Skalierbarkeit, d.h. wenn die Abfrage die richtigen Werte liefert, so lässt sich diese Methodik auf andere Seiten der gleichen Internetdomain übertragen und dort funktioniert es auch meißt einwandfrei. Deshalb bietet es sich auch an zum Überwachen von Seiten. Im nächsten Abschnitt werde ich mal ein kleines Beispiel für einen solchen Code darstellen.

Ansonsten bietet es sich an, einfach mal die Abfragen an einer beliebigen Internetseite zu testen.