bestimmten Button auf Webseite automatisch immer wieder anklicken

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • 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.

  • bestimmten Button auf Webseite automatisch immer wieder anklicken? Schau mal ob du hier fündig wirst!

  • 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...

  • Ich bin mit JSON-Request sowie CURL auch nur sehr mager vertraut.
    Was ich auf die schnelle fand: http://vinhboy.com/blog/2011/09/08/example-curl-json-post/
    Als für dich denke ich dann so:

    Code
    curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d "{'json':{'request':'update'}}" http://deineurl.de/
  • 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

    Einmal editiert, zuletzt von Kelvin (19. März 2014 um 22:16)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!