bestimmten Button auf Webseite automatisch immer wieder anklicken

  • Hallo!


    Ich habe ein eher überschaubares Problem, das für Experten auf dem Gebiet sicher trivial ist:


    Es wird ein Programm/Script/wasauchimmer benötigt, das auf dem Raspberry Pi unter Raspbian auf einer fest vorgegebenen (fremden) Webseite einen bestimmten Button in definierten Abständen (Beispiel: 30 Sekunden) immer wieder anklickt. Das Timing ist dabei nicht kritisch - es macht also nichts, wenn der Klick mal nach 26 Sekunden erfolgt und mal nach 39.


    Der Button ist in HTML wie folgt definiert: <a class="..." href="javascript:...()"></a>, d.h. beim Anklicken erfolgt der Aufruf einer JavaScript-Funktion, auf die ich keinen Zugriff habe.


    Auf einem Windows-PC konnte ich die Aufgabe dadurch lösen, daß ich mit dem Programm PTFB den Button in vorgebenen Zeitabständen anklicken lasse. Dies hat aber den Nachteil, daß das entsprechende Browserfenster dabei immer in den Vordergrund geholt und maximiert wird, was für die beabsichtigte Verwendung nicht akzeptabel ist. Davon abgesehen wäre es ein ziemlicher Overkill, NUR DAFÜR einen ganzen zusätzlichen PC im LAN mitlaufen zu lassen.


    Die Boardsuche hat in ähnlichen Fällen den Namen PhantomJS geliefert - weiß jemand, ob man die oben beschriebene Aufgabe damit lösen kann und wie man dabei vorgehen sollte? Zu beachten ist wie gesagt, daß ich auf die Dateien der Webseite keinen Zugriff habe (abgesehen vom Seitenquelltext im Browser) und somit keine Änderungen oder Ergänzungen an diesen vornehmen kann.


    Vielen Dank schon mal für jede Art von Hinweis und Hilfestellung.

  • Was passiert denn nach dem Klick auf den Button? Wird im Hintergrund ein Request ausgeführt?
    Wenn im Hintergrund ein Request ausgeführt wird, dann muss lediglich ein Script programmiert werden, welches diesen Request automatisch sendet.


    Ob ein Request im Hintergrund ausgeführt wird, kannst du mittels Browser Console im Reiter "Netzwerk"/"Network" beobachten.

  • Danke für den Hinweis - ich hab das mal gemacht und Folgendes erfahren:


    Die JavaScript-Funktion sendet offenbar einen POST-Request mit einigen Cookies usw. und den Formulardaten


    jsonpost:"{"request":"update"}"


    Ob man da mit cURL was machen könnte? Dummerweise ein weiteres Thema, von dem ich keine Ahnung habe...

  • Hallo und vielen Dank schon mal! Deine Idee klingt hochinteressant, sobald ich heute abend dazu komme, werde ich das mal unverzüglich ausprobieren.

  • Eine Alternative, ohne einen Pi zu benutzen, wäre die Browser Erweiterung "iMacros". Es ist einfach den Befehl zu programmieren und dann spielst du das Macro in einer Schleife ab.
    Vorteil: es muss nicht im Vollbild laufen sondern kann auch minimiert werden
    Nachteil: Der PC muss laufen

    Kelvin

  • Also erstmal vielen Dank an alle, die bisher Tips und Hilfen gepostet haben!


    Ich hab das jetzt mit iMacros auf dem PC gemacht und das scheint soweit auch korrekt zu funktionieren:


    Code
    VERSION BUILD=8810214 RECORDER=FX
    TAB T=1
    URL GOTO=http://.../.../...
    TAG POS=1 TYPE=A ATTR=TXT:Update
    WAIT SECONDS=20


    (Das Ganze dann in einer Schleife mit den maximal möglichen 99999 Wiederholungen)


    Es ist weder besonders elegant, noch sehr effektiv - insofern werde ich die o.g. Lösungen auf dem Raspberry Pi auf jeden Fall weiterverfolgen. Wenn ich auf diesem Weg zu einer besseren Lösung gelange, werde ich diese hier beschreiben, damit vielleicht auch andere was davon haben.

  • Code
    VERSION BUILD=8810214 RECORDER=FX
    TAB T=1
    URL GOTO=http://.../.../...
    TAG POS=1 TYPE=A ATTR=TXT:Update
    WAIT SECONDS=20


    Es ist weder besonders elegant, noch sehr effektiv


    Provisorische Lösung die sich aber bewährt ;)


    Falls es mal Fehler auf der Seite geben sollte, stoppt das Makro. Das kannst du umgehen indem du folgenden Code einfügst:


    [font="Monaco, Consolas, Courier, monospace"]VERSION BUILD=8810214 RECORDER=FX[/font]
    [font="Monaco, Consolas, Courier, monospace"]SET !ERRORIGNORE YES[/font]
    [font="Monaco, Consolas, Courier, monospace"]TAB T=1[/font]
    [font="Monaco, Consolas, Courier, monospace"]URL GOTO=http://.../.../...[/font]
    [font="Monaco, Consolas, Courier, monospace"]TAG POS=1 TYPE=A ATTR=TXT:Update[/font]
    [font="Monaco, Consolas, Courier, monospace"]WAIT SECONDS=20[/font]

    Kelvin

    Edited once, last by Kelvin ().