Ein Programm, mit dem mein Computer zwei Tage lang alle 30 Minuten eine bestimmte Aktion auf einer Website ausführen kann

Also möchte ich, dass mein Computer 2 Tage lang alle 30 Minuten eine bestimmte Sache auf einer Website macht. Ich möchte, dass mein Computer etwas auf einer Website postet und der Titel muss die Uhrzeit anzeigen. Kennt jemand ein Programm, das das kann?

Ich benutze Windows.

Entwickler würden Selenium verwenden . Können Sie etwas mehr Hintergrundinformationen zum Wissen des Benutzers geben (dh Sie, wenn ich das richtig verstehe). Ist die Programmierung in Ordnung oder benötigen Sie eine einfache Benutzeroberfläche?

Antworten (2)

Hier sind die Optionen, die ich vorschlagen kann (in keiner bestimmten Reihenfolge):

  1. Selen . Dies ist ein Automatisierungstool für Webbrowser. Es wird normalerweise von Entwicklern zum Ausführen von Website-Testskripten verwendet, kann aber für jeden Zweck verwendet werden, der eine wiederholbare Aktion auf einer Website erfordert. Sie würden ein Skript schreiben, das ihm sagt: "Klicken Sie darauf, geben Sie das ein usw.", und könnten es wiederholt ausführen. Es funktioniert mit allen gängigen Browsern. Sie benötigen immer noch ein separates Tool, um es so einzustellen, dass es regelmäßig ausgeführt wird.

  2. Sahi . Ähnlich wie Selen. Wohl einfacher zu bedienen, aber nicht so weit verbreitet. Es funktioniert jedoch immer noch in allen gängigen Browsern. Wie bei Selenium benötigen Sie immer noch ein separates Tool, um die Ausführung zu planen.

  3. PhantomJS . Das ist ein bisschen anders als die anderen. Phantom ist ein „kopfloser Webbrowser“; Das heißt, es ist ein voll funktionsfähiger Webbrowser, jedoch ohne Benutzeroberfläche. Sie können es verwenden, um durch Seiten zu navigieren, aber die gesamte Interaktion mit ihm erfolgt durch Skripterstellung, sowohl um ihm zu sagen, was zu tun ist, als auch um die resultierenden Webseiten zu inspizieren. Wie bei den beiden anderen oben genannten Tools wird es häufig zum Schreiben von Testskripten für Websites verwendet. Es ist wesentlich schneller beim Ausführen seiner Skripte als Selenium oder Sahi, da es keinen Overhead hat, einen separaten Browser zu laden und das Browserfenster nicht auf dem Bildschirm darzustellen. Die Lernkurve ist jedoch erheblich steiler, sodass Sie mehr Aufwand benötigen, um sie zum Laufen zu bringen. Wie bei den anderen benötigen Sie ein separates Tool zur Automatisierung, damit es regelmäßig ausgeführt wird.

  4. WGet . Abhängig von Ihren Anforderungen benötigen Sie möglicherweise nichts von der Komplexität der oben aufgeführten Tools. WGet ist ein sehr einfaches Tool, das nichts anderes tut, als eine Webanfrage zu stellen. Wenn Ihr Automatisierungsbedarf einfach ist – laden Sie beispielsweise einmal täglich eine bestimmte Seite, um ein Ereignis auf Ihrer Website zu aktivieren – dann können Sie dies möglicherweise erreichen, indem Sie einfach die Seite laden. Sie müssen nicht unbedingt einen Browser haben, der etwas mit der Seite macht, sobald sie geladen ist. In diesem Fall ist WGet möglicherweise eine bessere Option als alle anderen, nur weil es so einfach ist. Auch hier benötigen Sie etwas anderes, um ihm mitzuteilen, dass es regelmäßig ausgeführt werden soll.

Nachdem Sie das Skript geschrieben haben, können Sie es für alle oben genannten Punkte regelmäßig ausführen, indem Sie den Windows-Taskplaner verwenden, der in Windows integriert ist.

Eine letzte Sache, die ich sagen möchte: Wenn die Aktion, die Sie regelmäßig ausführen, eine Aktion auf Ihrer eigenen Website ist, sollten Sie sie möglicherweise besser vom Webserver selbst ausführen lassen. In diesem Fall müssten Sie, vorausgesetzt, Ihr Server läuft unter Linux, einen Cron-Job verwenden, um die Automatisierung durchzuführen, aber Sie würden keines der oben genannten Tools benötigen, da Ihr Cron-Job den Code einfach direkt auf Ihrer Website ausführen könnte .

Da Sie "Website" gesagt haben, können Sie Ihren Browser verwenden, um die Arbeit zu erledigen. Obwohl Selen auch verwendet werden kann.

Ich werde den Browser verwenden.

Haftungsausschluss : Um dies zu erreichen, sind mittlere Javascript-Kenntnisse erforderlich.

Hier sind deine besten Freunde, nutze sie aus: setInterval, iframes, MouseEvents,KeyboardEvents

Sie gehen zur Zielwebsite, öffnen die Browserkonsole und geben das Skript ein (dazu später mehr).

Das Hauptfenster / die Registerkarte des Browsers hält Ihr Skript am Laufen, Iframes fungieren als Sandbox der zweiten Ebene für Ihr Skript, da das Auslösen von Klicks auf der Hauptseite möglicherweise auf eine andere Seite umgeleitet wird, wodurch Ihr Skript weiter gestoppt wird.

Und dann verwenden Sie normale Selektoren und MouseEvents/KeyboardEvents, um das zu erreichen, was Sie wollen.

Beispiel:

Dieses Beispielskript wird die erste Antwort positiv bewerten, die im neuesten Thread auf reddit.com/r/webdev gepostet wurde

Warnung: Sie müssen bei reddit angemeldet sein

1. Öffnen Sie Ihren Browser (auf Chrome getestet)

2. Gehen Sie zu reddit.com/r/webdev

3. Öffnen Sie die Konsole durchCTRL + SHIFT + J

4. Fügen Sie den folgenden Code ein und drücken Sie die Eingabetaste (wird später erklärt)

Sie können jetzt gehen, stellen Sie nur sicher, dass der Browser weiter läuft.

Was ist los??

Die wichtigsten Helfer sind hier setIntervalund iframes. Ersteres hält es in einer Schleife und letzteres wird verwendet, um Skripte auszuführen, und das Fenster selbst wird verwendet, um die Umgebung aufrechtzuerhalten.

Legen Sie die Endzeit für das Skript fest

var endLoopAt = new Date('July 08, 2016 08:24:00');

Erstellen Sie eine Sandbox-Umgebung, das Hauptfenster wird verwendet, um das Skript am Laufen zu halten

var sandBoxedIframe = document.createElement("iframe");
sandBoxedIframe.onload = checkAndUpvote;
document.body.appendChild(sandBoxedIframe);

Wird verwendet, um zu prüfen, ob der neuste Link derselbe ist wie der, der während der letzten Ausführung geprüft wurde

var lastUpdatedFirstPostLink = "";

Der Rest des Skripts verwendet Elementselektoren (Sie können "inspect element" verwenden, um Ihre zu finden) und sendet Ereignisse an sie.