Wie man Aufgaben im Web automatisiert

Ob man nun Informationen aus dem Web abgreifen möchte («scraping») oder automatisiert mit Twitter, Facebook, Linkedin, Youtube oder einer beliebigen anderen Site interagieren will – mit Browserflow erledigt man solche Aufgaben effizient und nervenschonend.

Als Erstes bedanke ich mich bei Markus Ritzmann: Er hat mich mit diesem Tweet hier auf die Idee gebracht, Browserflow vorzustellen.

Browserflow ist eine Browser-Erweiterung, die es zu meinem Leidwesen bislang nur für Google Chrome gibt, die aber so spannende Dinge tut, dass ich gewillt bin, meinem Lieblingsbrowser Firefox zumindest für spezifische Zwecke den Rücken zu kehren.

Die Erweiterung ist dazu da, Interaktionen mit Websites zu automatisieren. Was das konkret bedeutet, sieht man in der Gallery: Dort gibt es für einige grosse Sites vorgefertigte Abläufe:

  • Twitter: Man kann die Antworten der ersten Stufe auf einen Tweet in eine Google-Tabelle exportieren lassen, alle Twitter-Follower in eine Liste schreiben, die Namen aus einer Tabelle zu einer Twitter-Liste hinzufügen, alle entfolgen, die mit Like ausgezeichneten Tweets exportieren und alle Likes von Tweets entfernen
  • Linkedin: Bei Microsofts sozialem Netzwerk nimmt man automatisiert alle Einladungen an oder ignoriert sie, lässt sich die Angestellten eines Unternehmens zusammentragen, holt die E-Mails aus Kommentaren oder führt ein Scraping bei Profilen durch.
  • Instagram: Die spannendste Funktion für die Fotoplattform ist sicherlich das Herunterladen aller Fotos – das habe ich früher mit einer speziellen App gemacht, die es leider nicht mehr gibt. Man kann auch die Leute, denen man folgt, in eine Tabelle überführen oder alle entfolgen.
  • Facebook: Das «Scrape Following»-Script, das alle Leute, denen man folgt, in eine Tabelle schreibt, gibt es auch für Mark Zuckerbergs soziales Netzwerk. Man kann sich auch die Likes zusammentragen lasen oder alle Abos für Seiten aufkündigen.

Weitere Automatisierungen gibt es auch für Youtube, Google Maps, Facebook Messenger. Plus ein paar allgemeingültige Scripts.

Die Website, die gescrapt werden soll, erscheint links und rechts mein Flow, der das erledigt.

Das eröffnet einige Möglichkeiten für Bastler, Hacker und Datenfreaks. Um zu sehen, wie einfach oder schwierig das Entwickeln einer eigenen Automatisierung ist, will ich die Aufgabe lösen, die ich hier mit Power Automate Desktop von Microsoft und hier mit Keyboard Maestro für den Mac erledigt habe. Es geht darum, über die Exportfunktion von WordPress automatisch ein Backup anzufertigen.

Die Aufgabe ist innert Sekunden halb erledigt

Und um die Pointe vorwegzunehmen: Diese Aufgabe lässt sich innert Sekunden lösen – aber nur halb.

Ich klicke auf Create Flow, dann auf Add Command und im nächsten Schritt auf Start Recording. Auf diese Weise lassen sich die Aktivitäten aufzeichnen, ohne dass man sie Schritt für Schritt programmieren müsste. Und in der Tat – der Rekorder fügt innert Sekunden die notwendigen Arbeitsschritte zum Flow hinzu, sodass ich schon am Ziel bin, noch bevor ich richtig angefangen habe.

Allerdings bin ich nur halb am Ziel, weil Browserflow dazu da ist, Aktionen im Web zu automatisieren und keine lokalen Arbeitsschritte unterstützt. Zu denen gehört das Komprimieren und Wegräumen des Backups, das sich mit Browserflow nicht bewerkstelligen lässt. Doch Browserflow harmoniert perfekt mit der Autmatisierungs-Anwendung File Juggler für Windows (Eine artistische Windows-App für Ordnungsfanatiker).

Zwei Schritte sind für diese Aufgabe nötig: Mit dem Befehl Visit ruft man die Seite Daten exportieren seiner WordPress-Installation auf. Und mit Click simuliert man die Betätigung des Knopfs Export-Daten herunterladen. Maximal einfach und effizient.

Da geht noch mehr!

Und weil das derartig simpel war, will ich mich an einem zweiten Experiment versuchen, bei dem Browserflow seine Fähigkeiten besser unter Beweis stellen kann.

Zu diesen Fähigkeiten gehört das Scraping, also das Abgreifen von Informationen ab Websites, die keine öffentlichen Schnittstellen für derlei Zwecke anbieten, sowie automatisierte Klick-Orgien. Darum will ich ausprobieren, ob ich alle meine bei Audible gekauften Bücher mittels Browserflow in eine Liste übertragen kann.

Zu diesem Zweck habe ich im Beitrag Vergriffene Hörbücher ein Script vorgestellt. Aber einen Flow dafür zu haben, den man selbst gebastelt hat und anpassen könnte, ist natürlich noch besser.

Um gegenüber dem Script einen Mehrwert zu haben, versuche ich mich an der Liste Listen History: Dort steht nicht drin, was man gekauft hat, sondern was man sich auch wirklich anhören mochte.

Bei dieser Scraping-Aufgabe ist es mit einer reinen Aufzeichnung nicht getan: Für sie muss man ein wenig programmieren. Und beim Einstieg hilft diese Anleitung hier.

Die Informationen auswählen, die man abgreifen will

Trotzdem starte ich mit einer Aufzeichnung, bei der ich die Liste markiere, in der die zuletzt angehörten Bücher aufgeführt sind. Ich werde aufgefordert, ihr einen Namen zu geben. Als Nächstes klicke ich das Feld in der obersten Zeile an, in der der Titel steht, dann als Letztes das Feld daneben, in dem das Datum steht, wann ich das Buch zu Ende gehört habe. Auch diese beiden Felder sind zu benennen.

Als erstes gibt man an, welche Liste durchgearbeitet werden sollen und welche Felder abzufragen sind.

Nun stoppe ich die Aufnahme. Im Flow erscheint nun der Befehl Loop Elements, der durch die Elemente der Liste durchgeht. Innerhalb dieser Schleife gibt es zweimal den Befehl Get Element Text, der den Inhalt der Felder für den Titel und für das Hördatum abfragt. Der letzte Befehl lautet Add Spreadsheet Row, mit dem diese Informationen einer Tabelle hinzugefügt werden.

Natürlich muss beim Einfügen der Informationen in eine Tabelle angegeben werden, welche Tabelle das ist. Für diesen Zweck verbinde ich meinen Account für Google Docs, bei dem ich bereits eine Tabelle angelegt habe. Über einen Dialog darf ich diese Tabelle auswählen und angeben, welches Tabellenblatt verwendet werden soll.

Nun trägt Browserflow bei Add Spreadsheet Row für die beiden angeklickten Felder je einen Wert ein: Bei Titel wird die Variable $titel eingetragen, bei Datum die Variable $datum.

Die Liste durchackern

Ein paar Befehle – und fertig ist die Laube.

Klickt man den Befehl Loop Elements an, hat man im Abschnitt Settings for loading more elements die Möglichkeit festzulegen, was der Flow tun soll, wenn die Ergebnisliste mehrere Seiten umfasst. Es gibt die Optionen Scroll down to load more elements (nach unten scrollen, um weitere Daten zu laden), Click link to navigate to next page (klicken, um zur nächsten Seite zu gelangen) und Click button to load more elements (klicken, um weitere Daten zu laden.) Da sich meine Audible-Hörhistorie auf eine Seite beschränkt, brauche ich hier nichts anzugeben.

An dieser Stelle sieht es so aus, als ob alles wäre, was ich für meine kleine Audible-Scraping-Aktion benötigen würde – und darum klicke ich frohgemut auf den grünen Run Flow-Knopf, um zu sehen, was passiert.

Das war ja einfach!

Und in der Tat, das wars. Eine Sekunde später stehen die Buchtitel und das Datum in meiner Google-Tabelle: Perfekt!

Das Resultat der Bemühungen: Die Liste in Google Tabellen.

Natürlich, dieser Flow hat noch Verbesserungspotenzial: Man könnte zu jedem Buch weitere Informationen in Erfahrung bringen, wofür man jeden einzelnen Eintrag automatisiert anklicken und auf der Detailseite die entsprechenden Informationen aufsammeln müsste. Wenn ich mal Zeit habe, dann tue ich das und ergänze die Hinweise dazu hier im Blogpost.

Doch fürs Erste gilt es festzuhalten, dass Browserflow eine grossartige Sache ist. Wenn man grundlegende Erfahrungen mit der Programmierung und eine Vorstellung über den Aufbau von Websites hat, kommt man mit dieser Lösung schnell auf einen grünen Zweig und kann Daten von Websites abzweigen oder repetitive Aufgaben erledigen lassen. Darum eine unbedingte Empfehlung!

Browserflow ist kostenlos, wenn man die App weniger als dreissig Minuten pro Monat ausführt. Ansonsten gibt es Preispläne ab 19 US-Dollar pro Monat. Für den Hobby-Einsatz ist das etwas teuer, aber sobald man eine Aufgabe hat, bei der man sich effektiv Arbeitszeit einspart, lohnt sich das Abo allemal.


Nachtrag vom 7. Juni 2022

Ich habe Browserflow für ein zweites Projekt ausprobiert, in dem das Plugin aber nicht zum Zug gekommen ist. Siehe Beitrag Angewandte Web-Automatisierung.

Beitragsbild: Wieso selbst wie wild klicken, wenn er doch die ganze Arbeit macht? (Andrea De Santis, Unsplash-Lizenz)

Kommentar verfassen