Google-Tabellen: importXML-Funktion für Web Scraping nutzen
Eine der wichtigsten Eigenschaften von Google Tabellen bzw. Google Sheets ist die Fähigkeit, Inhalte von Webseiten direkt importieren zu können: Die Funktion Google Sheets importXML() liest strukturierte Website-Inhalte aus und überträgt sie in das gewünschte Sheet der Google-Tabellenkalkulation.
Die beiden Tabellenkalkulationsprogramme Google Sheets und Excel weisen zwar viele Ähnlichkeiten auf, unterscheiden sich aber in einigen wesentlichen Punkten, wie unser Vergleich von Excel und Google Sheets zeigt.
Dieser „XML to Google Sheets“-Import ist äußerst praktisch, wenn man Tabellen aus Daten erzeugen möchte, die online bereitgestellt werden. In diesem Artikel lernen Sie, wie Sie von dieser Möglichkeit Gebrauch machen können. Außerdem geben wir ein paar Anregungen, wie Sie dieses nützliche Feature von Google Tabellen sinnvoll einsetzen können.
Google Sheets: importXML()-Funktion kurz erklärt
Die Funktion importXML() liest strukturierte Daten von Webprojekten aus und fügt sie in die Zellen eines Tabellenblattes von Google Sheets ein.
Die Eingabe der Funktion in der Google-Software gestaltet sich dabei folgendermaßen:
=importXML(URL, XPath)
Google Sheets importXML() hat nur zwei Parameter:
- URL: Die Webadresse, von der Sie Daten holen möchten. Am einfachsten ist es, wenn Sie diese direkt aus der Adresszeile des Browsers kopieren.
- XPath: Die Angabe, an welcher Stelle der Seite die Daten sind, die Sie importieren wollen.
Ausführliche Informationen über XPath finden Sie in unserem XPath-Tutorial.
Wenn Sie die Parameter direkt in der Funktion angeben, müssen Sie sie in Anführungszeichen setzen. Einfacher ist es, wenn Sie die beiden Parameter (ohne Anführungszeichen) in zwei Tabellenzellen schreiben und dann in der Formel-Funktion darauf verweisen. Damit ersparen Sie sich die Anführungszeichen.
- Alle Google-Apps zentral und online für flexibles Arbeiten
- Nutzung von Gmail mit Ihrer Domain von IONOS
- Inklusive priorisiertem Google-Support
Anwendungsmöglichkeiten von Google Tabellen importXML
importXML() ist vielseitig einsetzbar. Besonders interessant sind dabei die folgenden vier Anwendungsmöglichkeiten:
- Erstellen von Link-Listen
- Analyse von strukturierten Webpage-Daten
- Extraktion von Text-Content
- Übernahme von HTML-Tabellen
In den nachfolgenden Abschnitten erklären wir Ihnen anhand dieser vier Anwendungsoptionen, wie Sie importXML in Google Sheets konkret einsetzen können.
Google Tabellen erhalten Sie als Bestandteil von Google Workspace direkt bei IONOS – inklusive kostenfreier Domain!
Erstellen von Link-Listen
Manchmal möchte man interessante Website-Adressen übersichtlich in einer Liste darstellen, einschließlich URL, Name der Website und einer aussagekräftigen Kurzbeschreibung. Eine gute Basis für diesen Anwendungsfall liefert die Website Nodesign: Diese Linksammlung präsentiert Grafik-Werkzeuge für Entwickler ohne bzw. mit geringer Ausbildung in puncto Design. Die Links erscheinen in Boxen, die jeweils ein Bild, einen Titel und eine Kurzbeschreibung enthalten. Aktuell enthält die Sammlung über 140 Einträge.
Wir möchten daraus in Google Tabellen mit importXML() eine übersichtliche Link-Liste erstellen und gehen hierfür wie folgt vor:
- Inhalte im Quellcode der Webpage ermitteln
Benötigt werden in diesem Fall die URL, der Ankertext (d.h. Beschriftung des Links) und die Kurzbeschreibung. Dazu rufen wir im Browser das Entwicklertool auf (Taste F12 oder rechte Maustaste und „untersuchen“) und wählen die erste Kachel aus. Dort finden wir unterhalb des <h5>-Tags die gewünschten Angaben: die URL (1), den Ankertext zum Link (2) sowie die Kurzbeschreibung (3).
- XPath definieren
Im zweiten Schritt definieren wir die Pfadangaben (XPath) für die drei Informationen:
URL: Die URL ist ein Attribut des Tags <a>,der sich unterhalb des <h5>-Tags befindet. Der XPath lautet entsprechend:
//h5/a/@href
Ankertext: Der Ankertext ist der Inhalt des bereits oben definierten <a>-Tags: //h5/a. Wir übernehmen den XPath von oben und lassen das Attribut @href weg.
Kurzbeschreibung: Dieser XPath ist etwas kniffliger, da er sich nicht auf der gleichen Hierarchiestufe befindet wie der <a>-Tag. Wenn wir einfach den Absatz <p> als XPath nehmen, stimmen die Texte nicht mehr mit der URL überein. Deshalb definieren wir den Absatz, der die Kurzbeschreibung enthält, als dasjenige Element, das auf gleicher Hierarchiestufe nach dem <h5>-Tag folgt:
//h5/following-sibling::p
- Die Funktion in der Google Tabelle anwenden
Nun schreiben wir für jede der drei Angaben eine importXML()-Anweisung in eine Tabellenspalte. Dies müssen wir nur auf der ersten Zeile tun; das Programm lädt die übrigen Zeilen automatisch. Dabei wird die Formel selbst ebenfalls mit Inhalt überschrieben.
Um die Übersicht zu behalten, fügen wir oben eine Leerzeile ein und tragen dort die Funktion noch einmal zur Information ein – diesmal mit einem Apostroph am Anfang, damit die Formel nicht ausgeführt, sondern als reiner Text behandelt wird.
Diese Tabelle können Sie auf die gewohnte Art und Weise weiter bearbeiten; die einzelnen Zellen enthalten dabei die eigentlichen Daten und nicht die Formel.
- Bewährt: Vollständiges Office-Paket
- Sicher: 1 TB zentraler Speicherplatz
- Ortsunabhängig: Auf bis zu 5 Geräten installierbar
Analyse von strukturierten Webpage-Daten
Die gerade generierte Link-Liste kann nun bei Bedarf auf verschiedenste Art analysiert werden. Beispielsweise könnte man zu jeder gefundenen URL noch den Meta-Title, die Meta-Description, die Sprache und die Codierung auflisten – Informationen, die für SEO-Zwecke relevant sind.
Hierzu schreiben wir die XPath-Angaben in die oberste Zeile und bauen die Funktion in der zweiten Zeile zusammen (Beispiel: zweite Spalte):
=importXML($A2,B$1)
Die Formel entnimmt die URL aus der ersten Spalte und den XPath aus der obersten Zeile. Damit wir die Formel nach unten und nach rechts erweitern können, setzen wir die erste Spalte und die erste Zeile als absoluten Bezug ($-Symbol).
Die #NV-Einträge sagen aus, dass die gesuchten Angaben auf der Webpage nicht gefunden wurden.
Um die Tabelle von den verlinkten Websites abzukoppeln, können wir sie markieren, kopieren und mit der Kombination [Shift] + [Ctrl] + [V] in ein neues Tabellenblatt einfügen.
Extraktion von Text-Content
Dank den Fortschritten in der Texterkennung durch Künstliche Intelligenz, auch als Natural Language Processing bekannt, wächst das Bedürfnis, größere Textmengen zwecks Analyse von Websites zu extrahieren.
Ein gutes Beispiel dafür sind Tageszeitungen, News-Aggregatoren und Presse-Überblicksseiten: Diese liefern wertvolle Informationen für eine Trendanalyse.
Für unsere Anwendungs-Demonstration wählen wir den Presseüberblick newstral.com. Wir wollen einfach eine Liste sämtlicher Pressemeldungen (Headlines) extrahieren. Dazu gehen wir wie folgt vor:
- Inhalte im Quellcode der Webpage ermitteln
Im Entwicklertool (Funktionstaste F12 oder mit rechte Maustaste „untersuchen“ klicken) selektieren wir eine Schlagzeile und schauen uns an, wie diese strukturiert ist. Die Struktur ist in diesem Fall ganz unkompliziert: Die Schlagzeile ist der Ankertext des Links (unterste Zeile):
- XPath definieren
Damit ausschließlich die Headlines ausgegeben werden und nicht auch alle übrigen Links auf der Homepage, müssen wir den XPath allerdings ein bisschen exakter spezifizieren: Gefunden werden sollen nur <a>-Tags der Klasse „headline“, und zwar nur solche, die sich innerhalb des Abschnittes der Klasse „headlines-container“ befinden.
//div[@class="headlines-container"]/ul/li/span/a[@class="headline"]
- Die Funktion in der Google Tabelle anwenden
URL und XPath tragen wir in einem leeren Google-Tabellenblatt in die Spalte ganz links ein. Von dort können wir sie bequem „holen“, um die Funktion zu schreiben:
(Zelle B1) =importXML(A1,A2)
(Zelle B2) =importXML(A1,A3)
Das Resultat ist eine Liste der Schlagzeilen. Das Schöne daran: Diese Liste kann jederzeit mit F5 aktualisiert werden, sodass sie immer die neusten Inhalte anzeigt.
Möchten Sie noch mehr Tricks für Google Tabellen kennenlernen? Lesen Sie hier, wie Sie Google-Sheets-Dropdown-Listen anlegen können.
Übernahme von HTML-Tabellen
Um eine Tabelle von einer Webseite in Google Sheets zu übertragen, genügt eine einzige Formel. Nehmen wir zum Beispiel eine Tabelle in einem Beitrag von Wikipedia über die Samsung Galaxy Modelle: Um diese Tabelle zu importieren, benötigen wir lediglich den <table>-Tag im XPath. Allerdings müssen wir noch herausfinden, wie viele <table>-Tags vor unserer Tabelle vorkommen. Die von uns gesuchte Tabelle ist die dritte auf dieser Webseite. Die Formel dazu lautet entsprechend:
(deutsch) =importXML(„https://de.wikipedia.org/wiki/Samsung_Galaxy“, „//table[3]/tbody/*“)
(englisch) =importXML(„https://en.wikipedia.org/wiki/Samsung_Galaxy“, „//table[3]/tbody/*“)
Voilà! Mit einer einzigen Formel in der Zelle B1 haben wir die gesamte Tabelle mit allen Zeilen und Spalten korrekt in das Tabellenblatt übernommen.
Sie sehen: Der „XML to Google Sheets“-Import ist enorm vielseitig einsetzbar und spart eine Menge Zeit und Arbeit.
Viele Social Media Plattformen und große Online-Händler wie Amazon verbieten Web Scraping. Lesen Sie deshalb zuerst die Nutzungsbedingungen, bevor Sie Ihre neu erworbenen Web Scraping Skills an diesen Plattformen ausprobieren.