iMacro: Macro-Recorder für den Browser

Manchmal möchte man - zumindest als Informatiker - gewisse Abläufe beim Surfen im Web automatisieren: Sei es um Dateien herunterzuladen, gewisse Sicherheitsabfragen automatisch zu beantworten o.ä.

Mein aktuelles Problem: Auf einer Website monatlich zahlreiche Dokumente herunterladen, die aber nicht alle auf der gleichen Seite verlinkt sind und die auch anhand der URL als Downloads erkennbar sind (konkret: Mobiltelefonrechnungen von der Website des Telecom-Providers herunterladen). Traditionelle Massendownloader wie z.B. die Firefox-Erweiterung DownThemAll! scheiden damit aus.

Was ich bisher kannte, war die Firefox-Erweiterung Firefox-Erweiterung Greasemonkey mit dem sich HTML-Seiten dynamisch mit Javascript verändern lassen und wofür es eine grosse Auswahl an vorbereiteten Skripten gibt. Die Einarbeitung erschien mir aber zu aufwändig.

Nach einigem Recherchieren bin ich auf die Firefox-Erweiterung IMacros gestossen. Damit lassen sich Abläufe im Firefox aufzeichnen, danach gegebenenfalls in der Macrosprache bearbeiten und schliesslich auf Knopfdruck wieder ablaufen lassen.

Das kann dann so aussehen:

VERSION BUILD=7000908 RECORDER=FX

set !VAR1 0
TAB T=1
URL GOTO=https://www.telco-provider.ch/ebill/Invoices.action?period={{!VAR1}}
TAG POS=1 TYPE=A ATTR=TXT:1.23456.78.90<SP>/<SP>5.4545.12.99

SET !VAR2 0791234567 

TAG POS=1 TYPE=A ATTR=TXT:{{!VAR2}}
ONDOWNLOAD FOLDER=verbindungsnachweise\iMacro FILE={{!VAR2}}.txt WAIT=YES
TAG POS=1 TYPE=A ATTR=TXT:Export<SP>von<SP>Daten
BACK

SET !VAR2 0791234568 

TAG POS=1 TYPE=A ATTR=TXT:{{!VAR2}}
ONDOWNLOAD FOLDER=\verbindungsnachweise\iMacro FILE={{!VAR2}}.txt WAIT=YES
TAG POS=1 TYPE=A ATTR=TXT:Export<SP>von<SP>Daten
BACK

etc.

Das Verstehen und Anpassen ging relativ einfach. Ich kann (noch) nichts über die Mächtigkeit der Skriptsprache aussagen, aber für gewisse quick&dirty-Anwendungen reichts auf jeden Fall, wenn wget nicht funktioniert (im aktuellen Fall wäre wget nicht besonders hilfreich, weil sich die relevanten URLs jeden Monat ändern können und ihre Relevanz nicht an der URL selbst sondern am umklammerten Text im HTML-Code erkannt werden kann. Anders formuliert: Die Telefonnummer bzw. ID der Rechnung ist nicht in der URL, sondern nur im verlinkten Text.)

Interessierte finden im Wiki von iMacros weiteres Futter, so eine Command Reference und Sample Code.


 
Zum Kommentieren ist eine Registration notwendig.

Kategorien: IsaBlog, IsaSoftware, IsaInformatik

Kontakt

  • Beat Döbeli Honegger
  • Plattenstrasse 80
  • CH-8032 Zürich
  • E-mail: beat@doebe.li