Artikelpreise aus Onlinekatalog in Rechnungsprogramm oder .xlsx

  • Hi Swiffer 👋 ,


    hier nun mein Vorschlag, für deine Website Automatisierung/Steuerung richner.teamonline.ch, bzw. für die Anforderung Daten der Website in eine CSV Datei zu überführen.

    • Die wichtigsten Stellen habe ich kommentiert.
      • Ich hoffe das reicht dir, ansonsten sind die Funktionen und Variablen treffend benannt (wie im post vorher bereits angekündigt 😅).
      • Frage bitte gerne nach, wenn dir irgendwas unklar sein sollte 🤝 .
    • Fehlerbehandlung ist nur minimal vorhanden, da sobald die Seite geladen ist (im WebDriver, chrome oder firefox), sie recht stabil ist und daher schätze ich den Bedarf dazu als gering ein.
      • Der Ablauf diesbzgl. kann noch ausgebaut/robuster gemacht werden (wirst du sehen ob du da mehr brauchst oder nicht).
      • Gerne auch hierzu nachfragen bei Bedarf.
    • Derzeit besteht eine leichte Verzögerung von 300 ms $iDelay, Zeile 18, für das Interagieren mit den Website-Elementen.
      • Beim lesen von Texten (Artikel und Preise etc.) sowie bei Klicks ist dies so. Kannst du gern noch anpassen, doch zu weniger als 150 ms würde ich nicht raten.
      • Dies dient der Robustheit der Ausführung. Es wird damit etwas langsamer, doch darauf kommt es dir sicherlich nicht an oder?
    • 💡 Eine Unschönheit ist, dass ich den automatischen Lauf im headless Modus ($bIsHeadlessMode), Zeile 17, nicht erfolgreich umsetzen konnte.
      • Also dafür müsste ich noch etwas Zeit aufwenden um das "Warum" zu klären und dies dann zu fixen. Jedoch auf Grund deiner Ausführungen sehe ich auch hier den Bedarf erstmal nicht.
      • Wie das ganze im headless Modus funktioniert, ist aber vorbereitet und du kannst sehen wie es sein müsste.
      • Falls du doch möchtest, dass der Browser unsichtbar seine Arbeit verrichtet und dein Skript die CSV anlegt, gib Bescheid. Dann setze ich mich vielleicht nochmal ran 🤝 .
    • Randnotiz: Im kommenden WebDriver Tutorial wird die Strukturierung nochmal anders sein.

    Das Skript allein, ist so nicht lauffähig. Alle Abhängigkeiten1, welche benötigt werden, inklusive des Main.au3 Skriptes können hier heruntergeladen werden.

    Das Ergebnis, der Ausführung ist, dass eine CSV Datei mit den gefundenen Artikelnummern und Verkaufspreisen angelegt wird. Also Beispiel für den heutigen Lauf:

    Dateiname ist @ScriptDir & '\' & @YEAR & @MON & @MDAY & '-' & @HOUR & @MIN & @SEC & '-artikelnummer-verkaufspreis.csv'. Anpassbar in Zeile 142.


    Viel Erfolg Swiffer damit 😀 .


    Viele Grüße

    Sven


    1 Der benötigte WebDriver (entweder Chrome oder Firefox), wird via "_WD_UpdateDriver()" heruntergeladen. Daher ist dieser nicht im verlinktem Verzeichnis vorhanden.

  • Hallo SOLVE-SMART


    Vielen Dank für Deine Bemühungen!!! Dein Vorschlag sieht echt toll aus :)

    Das ganze ist komplexer als ich es mir vorgestellt hatte. Hoffe Du hattest nicht zu viel Aufwand.

    Freue mich schon sehr es ausgiebig zu testen und gebe Dir dann gerne eine Rückmeldung.


    Ich wünsche einen erholsamen Sonntag.

    Grüsse Swiffer

  • Hi Swiffer,


    freut mich das es dir zusagt 🤝 .


    Die eigentliche Automatisierung der Webseite ist gar nicht so sehr komplex. Die Abhängigkeiten des WebDriver sowie die vielen Vorbedingungen, welche zu erfüllen sind bevor man wirklich zur Seite navigieren kann und loslegen kann, dies ist komplexer, ja. Da lässt sich nicht viel machen. Allerdings kann man das Gerüst (das schaffen der Vorbedingungen) ja nun immer wieder verwenden 😀 .


    Wenn es an der Seite Anpassungen geben sollte und du nicht mehr die Ergebnisse bekommst, welche du erwartest, dann musst du bestenfalls erstmal nur an die XPath-Selectoren (XPath-Ausdrücke) heran. Wenn es mehr Änderungen geben sollte, an den Ablauf auch noch. Erfahrungsgemäß ändern sich solche Seiten aber nicht sehr oft (selten).


    Wenn es soweit kommen sollte, gib bitte einfach Bescheid oder versuche selbst wie weit du kommst. Eine ausführliche Erklärung "wie", würden den Rahmen sprengen. Daher habe ich nur das kommentiert, was man auch gut fassen kann ohne zu viele Insights zu haben/zu kennen.


    Wenn es bei dir funktioniert und alles gut ist, dann schließe gerne diesen Thread hier (auf erledigt) setzen. Falls dann später noch was aufkommt, mach' einfach einen neuen auf 👍 .


    Viele Grüße

    Sven

  • Das geht ja sehr schnell mit den Daten abfragen. Super! :)

    Es kommt zwar eine Meldung von Cloudflare ich sei blockiert, die Preise werden jedoch trotzdem abgerufen und der "normale" Seitenaufruf funktioniert auch noch.

    Ich habe 18$iDelay jetzt mal auf 600 gesetzt in der Hoffnung weniger Gefahr zu laufen eine IP-Sperre zu erhalten. Vor allem beim testen.


    Frage(n):

    Ich habe 151 in _NavigateTo('https://richner.teamonline.ch/search/?q=f%FCllventil') geändert.

    Die Seite öffnet, das File wird erstellt aber es sind keine Preise enthalten. Es gibt keine Fehlermeldung.

    Muss ich sonst noch etwas ändern, wenn ich die Daten von einer anderen Richner-Seite abrufen möchte?


    Nochmals vielen Dank für Dein Engagement! Es eilt wie immer nicht.

  • Hi Swiffer,


    eine ausführliche Antwort folgt heute oder morgen 🤞 . Habe es zur Kenntnis genommen, aber gerade keine Zeit es ausführlich zu beschreiben.
    Bis dann.


    Viele Grüße
    Sven