Dieser Artikel ist ein Resümee des Vortrags „Screaming Frog ♥ KNIME“ von [Johannes Kunze] und mir auf der SEOkomm 2019. Er fasst noch einmal zusammen, was wir auf der Bühne erzählt haben. Im Folgenden lest ihr Teil 1 des Vortrags – Teil 2 wurde von Johannes selbst verfasst und befindet sich im get:traction Agentur-Blog. Bilderbuch-Teamwork!

Inhalt

1. Einleitung
2. Vorstellung der Cases
3. Vorgehensweise
4. Custom Extractions mit Screaming Frog
5. Crawls automatisieren

Hier ist das komplette Slidedeck:

 

Warum passen Screaming Frog, KNIME und DataStudio so gut zusammen?

Auf der Campixx im Frühjahr 2019 entdeckten Johannes und ich beim gegenseitigen Besuch unserer Vorträge, dass wir jeweils dort aufhörten, wo der andere begann. Dies führte zur Idee, einen gemeinsamen Vortrag zu gestalten, bei dem wir unsere beiden Schwerpunkte perfekt miteinander verbinden können.
Denn es ist so: Grundsätzlich können wir die drei Tools in zwei Kategorien einordnen. Screaming Frog hilft dabei, Daten zu sammeln, während KNIME bzw. DataStudio zur Auswertung derselbigen dienen*. Auf der SEOkomm 2019 konnten wir also in einem ganzheitlichen Vortrag zeigen, wie genau SEOs die vorgestellten Tool-Funktionen in einen schönen Workflow bringen können.

*Tatsächlich verwenden wir KNIME daneben auch noch zur Bereinigung der Daten – dazu später mehr.

Wozu ist das Ganze gut?

Tatsächlich sind die Beweggründe zur Nutzung unserer drei Tools relativ einfach und schnell erklärt:

  1. Einerseits spart ihr durch die Automatisierung von wiederkehrenden Prozessen/Reportings Zeit, und
  2. Andererseits könnt ihr neue/kreativere Ideen aus den untersuchten Daten herausholen.

Folie "Ziele"

Case-Vorstellung

Um den Vortrag möglichst praktisch zu gestalten und zum Ende hin noch einige kuriose Fakten einzuarbeiten, haben wir drei Cases bzw. Webseiten als Beispiele für unsere Untersuchungen herangezogen. Nun ist die SEOkomm eine November-Veranstaltung, womit das Kriterium „Passt zum Weihnachts-Theme“ erfüllt werden musste 😉
Daneben war uns natürlich noch wichtig, dass wir möglichst ungehindert unsere Datenerhebungen durchführen konnten (a.k.a. Kriterium „Lässt sich gut crawlen“).

Die folgenden Websites haben wir uns angeschaut:

Website Kategorie
https://www.gourmondo.de/ https://www.gourmondo.de/trinken/champagner-&-schaumwein
https://www.geschenke24.de/ https://www.geschenke24.de/weihnachtsgeschenke
https://www.fahrrad.de/ https://www.fahrrad.de/fahrraeder/e-bikes/

Folie "Cases"

Obwohl wir alle Fälle über Wochen beobachtet und Daten gesammelt haben, mussten wir uns für einen davon entscheiden, um den Ablauf detailliert darzustellen. Hierfür fiel unsere Wahl auf Fahrrad.de.

Generelle Vorgehensweise

Zu allen Fällen sind wir wie folgt vorgegangen:

  1. Zunächst haben wir all jene Seitenteile identifiziert, die uns interessieren und „schöne“ Datenreihen produzieren könnten. Dazu gehören z.B. Produktpreise, Rabatte oder Kennzahlen zur Verfügbarkeit.
  2. Diese haben wir mithilfe von Screaming Frog Custom Extractions automatisiert 3x pro Tag herausgezogen.
  3. Anschließend wurden die Daten über KNIME bereinigt. Beispielsweise wurden störende Sonderzeichen für eine reibungslose Analyse entfernt.
  4. Die bereinigten Daten gingen nun von KNIME zu BigQuery (als umfassender Speicherort), und von dort direkt zu DataStudio oder zurück zu KNIME zur Analyse.

Folie "Ablauf"

Die ersten beiden Punkte beleuchte ich hier noch etwas weiter, zu den Punkten 3 und 4 findet ihr wie bereits erwähnt eine ausführliche Anleitung von Johannes.

Custom Extractions mit Screaming Frog

Wer bereits meinen Vortrag auf der BrightonSEO April 2019 oder aber der SEO Campixx 2019 gesehen hat, wird sich bereits ganz gut mit dem Thema Custom Extractions und Xpath auskennen. Für alle anderen gibt es hier eine kleine Anleitung, wie es gemacht wird.

Schritt 1: Seite anschauen

Zunächst schaut ihr auf der Zielseite an, welche Elemente für eine weitere Analyse sinnvoll sein können. In unserem Beispiel schauen wir uns den heruntergesetzten Preis eines E-Bikes an: Mit einem Rechtsklick auf Preis und „Element untersuchen“ erscheint nun im Browser der zugehörige Quelltext, in welchem ihr sehen könnt, dass der Preis in einem span-Tag mit der Klasse „price-sales“ liegt. Das allein reicht schon, um euch nun den Xpath-Befehl aufzubauen.

Folie "Fahrrad.de Kategorie"

Schritt 2: Screaming Frog öffnen und Xpath anlegen

Öffnet nun einfach das Tool und geht über „Configuration –> Custom –> Extraction“. Es öffnet sich ein Fenster, in welchem ihr auf „Add“ klicken könnt. Es erscheint bereits die erste Xpath-Zeile, welche ihr noch befüllen müsst. Wählt dazu einen aussagekräftigen Namen, z.B. „Preis“, und baut euch den Xpath-Befehl zusammen:

Mit

//span

sucht ihr im kompletten Dokument nach einem Span-Tag. Uns interessieren nur spans mit der Klasse „price-sales“, demnach ergänzen wir die obige Zeile.

//span[@class="price-sales"]

Da sich innerhalb vom Span verschiedene Formate befinden können, uns aber lediglich der Text-String (= der Preis) interessiert, sorgen wir noch dafür, dass auch nur dieser in unserem Crawl herausgezogen wird.

//span[@class="price-sales"]/text()

Zu guter Letzt stellen wir noch sicher, dass störende Absätze oder Leerzeichen verschwinden, damit uns das Weiterverarbeiten der Daten möglichst einfach fällt. Dafür schließen wir unseren Xpath-Befehl in eine Funktion ein:

normalize-space(//span[@class="price-sales"]/text())

Et voilà! Fertig. Es fehlt nur noch, im rechten Dropdown „Function Value“ anzugeben (da wir hier wegen normalize-space eine Funktion erstellt haben), und schon können wir den ersten Crawl starten. In unserem Fall haben wir noch einige weitere Felder angeschaut, vom Produktnamen, über die Rabatthöhe, bis hin zur Kategorie.

Folie "Xpath Beispiele"

Es empfiehlt sich, die Daten einmal kurz ancrawlen zu lassen, um festzustellen, ob alle Informationen wie gewünscht herausgezogen werden oder sich irgendwo ein Fehler eingeschlichen hat. Gerade bei größeren Projekten spart ihr euch damit viel Zeit.

Folie "Fahrrad.de Crawl"

 

Automatisierung der Crawls

Um eine schöne Datenreihe zu erhalten, solltet ihr eure angepeilten Website (mehrfach) täglich crawlen lassen. Hier gibt es wieder viel Potenzial zum Zeitsparen mithilfe zweier Methoden.

1) Im Tool selbst einstellen

Ihr könnt euren Crawl bei Screaming Frog über „File –> Scheduling“ als automatischen Task anlegen.

Folie "Screaming Frog Scheduling"
Pro Task könnt ihr eingeben, wann genau welches Projekt gecrawlt werden soll, mit welchen Einstellungen (@ Xpath-Befehle) und in welchen Ordner das Ganze gehen soll. Wer dreimal am Tag ein Projekt crawlen will, legt drei Tasks mit den jeweiligen Zeiten kann. Wichtig: Die Standard-Einstellung bei Screaming Frog besagt, dass das Gerät eingeschaltet und das Netzkabel eingesteckt sein muss!

Folie "Crawl Scheduling Task"

2) Über Aufgabenplanung und Batch-Datei

Wer sich eine noch flexiblere Lösung wünscht, kann seinen Crawl automatisch über die Windows Aufgabenplanung steuern – denn letztlich macht Screaming Frog auch nichts anderes, als seine Tasks dort wieder als Aufgaben anzulegen. Dazu müsst ihr eine kleine Batch-Datei erstellen und dort innerhalb einer „einfachen Aufgabe“ anlegen. Die Batch-Datei selbst besteht aus Kommandozeilen, über die ihr Screaming Frog ohne das Tool-Interface steuern könnt. Mehr Informationen zu diesem Thema gibt es bei Screaming Frog selbst, oder sonst in diesem Artikel, den ich dazu gefunden habe.

Folie "Crawl Scheduling Windows Aufgabenplaner mit Batch-Datei"

Ihr habt nun zwei Schritte erledigt: Auf der einen Seite habt ihr passende Custom Extractions mithilfe von Xpath fertig gestellt, um Seitenbestandteile abseits der üblichen SEO-Felder des Tools zu crawlen. Auf der anderen Seite habt ihr die Crawls nun automatisiert und müsst hier also nichts mehr tun. Weiter geht es jetzt mit der Aufbereitung und Analyse der gesammelten Daten – Johannes erklärt euch in seinem ausführlichen Artikel, wie genau ihr das tun könnt!

Bei Fragen und Feedback

Wie bereits im Vortrag erwähnt, gibt es eine Community auf Facebook, die euch bei möglichen Rückfragen gern zur Seite steht. Alternativ könnt ihr mich direkt per E-Mail oder über das folgende Kontaktformular kontaktieren!