Rat gesucht. Autoit für automatisierte Uploadprozesse?

  • Hi Leute,

    ich habe mir ein skript erstellt mit dem ich automatisiert designs auf print on demand plattformen hochladen kann, um mir die arbeit beim uploadprozess etwas zu erleichtern.

    bislang habe ich die befehle über mouseclick- und sendbefehle ausführen lassen, allerdings werden so variable ladezeiten im browser nicht berücksichtigt und das ganze läuft nicht im hintergrund ab. mein rechner ist während der zeit leider blockiert.

    ich möchte das skript so erstellen, dass es zuverlässig funktioniert, habe aber gesehen, dass es auch die möglichkeit gibt mit imacros zu arbeiten. da ich anfänger bin und die einarbeitung für mich sehr zeitaufwändig ist, stellen sich mir zwei fragen:

    mit welchem programm kann ich meinen uploadprozess am ehesten umsetzen (autoit, imacros, oder andere)?

    falls autoit in frage kommt, gibts es ein paar hilfreiche tutorials dazu, die euch in den sinn kommen?

    bisher war die arbeit mit autoit eher frustrierend, denn schon einfache login befehle funktionierten auf den print on demand plattformen nicht, auf anderen webseiten allerdings schon ( z.b. email account). und bevor ich mir weiter die zähne daran ausbeiße, dachte ich mal, euch um rat zu fragen.

    thx!

  • Hallo, leider kann ich über die Software "imacros" nicht viel sagen da ich sie selber nicht kenne bzw. genutzt habe. Allerdings kann ich dir versichern dass dein Vorhaben via AutoIt durchaus möglich ist. Allerdings dürfte das durchaus aufwendiger werden, als eine Software zu nutzen die Benutzerfreundlich gestaltet ist. Die Frage ist, in wie fern du dich mit AutoIt in der Zukunft auseinander setzen möchtest und es sich dann überhaupt lohnt sich jetzt einmal die Arbeit zu machen und die erforderlichen Themenbereiche zu erlernen.

    Generell lassen sich in AutoIt HTTP Anfragen über TCP verschicken, sodass ein "geklicke" im Browser nicht notwendig ist. Die eleganteste Lösung ist eine Art "eigenen Browser" ohne Benutzeroberfläche zu erstellen, welches lediglich die notwendigen Daten an die gewünschte Internetpräsenz versendet. Dies hätte den Vorteil, dass du während des Uploadprozesses den Rechner weiterhin frei nutzen könntest. Eine durchaus einfachere Variante stellt das automatisieren des Browsers über einer der vorhandenen UDFs dar. Z.B. der FireFox UDF (FF.au). Oder aber du bleibst bei deinem Mausklicks im Browser um den Prozess zu automatisieren und optimierst diesen so, dass es passt und ohne Probleme so arbeitet wie du es wünscht.

    Alternativ kannst du auch mit JavaScript arbeiten und via die Extension "Tampermonkey" deinen eigenen JS Code in die Webseite intigrieren. Damit lässt sich das auch auch (sogar wesentlich einfacher) automatisieren. Eine Software kann ich dir leider nicht empfehlen da ich noch keine genutzt habe für Browser Automatisierungen.

    Wie du siehst gibt es da verschiedene Möglichkeiten an dein Problem ran zu gehen. Ich würde auf die HTTP Anfragen via TCP oder JS tendieren. Wenn du Hilfe bei deinem Vorhaben brauchst, sind die User von AutoIt.de bestimmt gerne hilfsbereit. Ansonsten kannst du ggf. auch eine Anfrage in den Programmieranfragen stellen.

    Mit freundlichen Grüßen :)

  • Hi Yiuq,

    danke für die tips.

    nach einigen gedanken darüber bin ich zu dem schluss gekommen mein jetztiges skript soweit zu verbessern und später eine elegantere variante umzusetzen.

    Oder aber du bleibst bei deinem Mausklicks im Browser um den Prozess zu automatisieren und optimierst diesen so, dass es passt und ohne Probleme so arbeitet wie du es wünscht.

    vielleicht hierzu noch eine frage :

    hast du dazu eine kronkrete idee..? bezügl der berücksichtigung von ladezeiten. mit welchen befehlen oder methoden würdest du an die sache rangehen? dann kann ich mir das mal anschauen und erste umsetzungsversuche starten.

    gruß

  • Nun ja, die einfachste Möglichkeit die mir einfällt wäre, wenn du einfach den Bildschirm für das Ladesymbol scannst. Google Chrome hat in seinem Tab eine eigene Animation dafür, wenn eine Seite noch nicht vollständig geladen ist. Darüber kannst du ermitteln ob die Seite noch am laden ist. Zudem ist mir aufgefallen dass die meisten Browser während des ladens unten links (oder rechts, je nachdem wo der Mauszeiger gerade ist) eine Art Link Anzeige hat, die so lange bestehen bleibt bis die gewünschte Seite geladen ist.

    Hmn, ich würde dir aber eher empfehlen selber die Datenpakete via TCP zu verschicken.

  • Hmn, ich würde dir aber eher empfehlen selber die Datenpakete via TCP zu verschicken.

    Also ich würde das auch lieber ohne mouseclicks machen, nur ist schon die abkürzung tcp fremdsprache für mich und ich habe bis jetzt noch keinen richtigen zugang zu dem programm gefunden. ich denke das wird relativ zeitaufwendig, wenn ich nicht konkrete umsetzungsbeispiele finde, nach deren vorbild ich mir mein script zurechtbauen könnte.

  • wenn eine Seite noch nicht vollständig geladen ist.

    solche ladeanimationen habe ich bei mir gar nicht, auch während der ladevorgänge nicht. liegt vermutlich daran, dass die ladvorgänge in extra popups stattfinden. manchmal sieht man auch einen ladebalken auf den buttons im uploadbereich

  • Lade doch mal dein bisheriges Skript einmal hoch. Falls sensible Daten darin vorhanden sind, solltest du diese besser davor zensieren / entfernen. Zudem wäre es hilfreich zu wissen um welche Plattform es sich eigentlich handelt. Du hast nach einem konkreten Umsetzungsbeispiel gefragt, allerdings ist das von Fall zu Fall unterschiedlich.

    Welchen Browser benutzt du? Sind die Uploads für private oder geschäftliche Zwecke? Im zweiten Fall, an dem eigenen Rechner oder Firmenrechner? Je präziser die Informationen umso eher kann ich dir helfen. Da du am Anfang eine allgemeine Frage gestellt hast, habe ich auch allgemein darauf geantwortet.

    Zitat

    Also ich würde das auch lieber ohne mouseclicks machen, [...]

    Gut, dann machen wir das mal so.

    Zitat

    [...] falls autoit in frage kommt, gibts es ein paar hilfreiche tutorials dazu, die euch in den sinn kommen? [...]

    Ich stelle dir alle notwendigen Informationen zur Verfügung sobald ich die Sachlage richtig eingeschätzt habe.

  • Danke für deine Bemühungen.

    Script ist im Anhang.

    browser ist z.z. firefox. habe aber auch i.e. und chrome.

    zu geschäftlichen zwecken, aber ist sozusagen eine einzelunternehmung.

    ich habe theoretisch zwei private rechner zur verfügung. mache z.z. alles am laptop aber das wird sich vermutlich bald ändern.

    das derzeitige problem an dem script ist, dass ich keine kontrollfunktionen habe, die beispielsweise ladezeiten prüfen.

    nachdem ich gelesen hatte, dass ich ie über autoit ansteuern kann, habe ich das auch gleich ausprobiert (per FireFox UDF (FF.au), wie oben erwähnt). wollte erst mal nur ein anmelde-programm für die plattform schreiben. funktionierte leider nicht. bei meinem email-provider lief das script alleridngs zuverlässig.

    sehr viel mehr habe ich noch nicht recherchiert.

    Einmal editiert, zuletzt von LordMONSTER (21. Januar 2019 um 00:42)

  • Hi o/

    Sorry für die späte Antwort, allerdings musste ich selber erst mal überlegen was die Beste Möglichkeit für dein Problem ist. Also, basierend auf deinen Informationen + dem Script was ich gesehen habe ist AutoIt leider nicht das passende Werkzeug für dein Vorhaben. Es würde mit AutoIt funktionieren, allerdings ist das durchaus aufwendiger nachdem ich mir mal die Webseite genauer angeschaut habe.

    Ich würde dir empfehlen mit PhantomJS zu arbeiten. Dies ist ein Web Browser ohne grafische Oberfläche. Der Vorteil dieses Browser ist es, dass du JavaScript Code ausführen kannst, womit du wiederum die gewünschte Webseite automatisieren kannst. Da die Webseite viel mit JavaScript arbeitet und ich gesehen habe dass du mehr machen willst als ein einfachen Upload, dürfte dies die angenehmste Lösung für dich sein. Allerdings erfordert das natürlich ein wenig Einarbeitung. Im Notfall lässt sich AutoIt immer noch dazwischen koppeln, da PhantomJS mit Konsolenausgaben arbeitet. Dies lässt sich wunderbar von AutoIt aus einlesen und auch steuern (Falls tatsächlich benötigt).

    Solche Browser Automatisationen sind etwas schwierig alleine mit AutoIt. Besonders sobald JavaScript ins Spiel kommt. Am besten informierst du dich erst einmal allgemein über PhantomJS und JavaScript (ggf. noch JQuery). Diese Webseite dürfte dir durchaus weiterhelfen: https://www.w3schools.com/

    http://phantomjs.org/ (PhantomJS Browser)

    https://www.w3schools.com/js/default.asp (JavaScript)

    https://www.w3schools.com/jquery/default.asp (JQuery)

    Es reicht wenn du einen groben Überblick hast. Dann versuch mal mit dem PhantomJS Browser einen automatischen Login zu schreiben. Dürfte einiges einfacher von der Hand gehen (normalerweise).

    Dein bisheriges Script ist leider nicht wirklich zu gebrauchen. Ich habe keine elegante Möglichkeit gefunden die dynamischen Elemente auf der Webseite mit AutoIt zu tracken. Sorry, vielleicht hat ja jemand noch einen passenden Vorschlag. Aber das ist leider das Beste was ich dir anbieten kann.

    Bei Fragen stehe ich natürlich gerne zur Verfügung.

    Ggf. kannst du auch mal gucken, ob dir die Browser Extension "Kantu" (https://a9t9.com/kantu) ggf. schon ausreicht? Wenn dir das für deine Vorhaben schon reicht, kannst du dir das obere eigentlich sparen.

    Einmal editiert, zuletzt von Yjuq (16. Januar 2019 um 13:36)

  • Oh, das ändert natürlich einiges. Ich habe nicht nachgeschaut ob diese eine API zur Verfügung stellen. Danke für den Hinweis, ich schau mal rein ob das den TE weiterhilft. Vielleicht bleiben wir doch bei einer reinen AutoIt Lösung dann.

    Gun-Food : Es ist ja nicht nur der Upload. Es scheint so, als ob der TE mehr machen möchte. Das hat er nicht unbedingt erwähnt, lässt sich aber aus seinen Script erschließen.