Web Crawling

Kirby.exe

Top Contributor
Also ich habe einen "Bot" geschrieben ein Formular für mich ausfüllt und ich versuche gerade einen Button zu finden indem in nach dem Text im Button suche. Ich weiß dass es auch mit Full XPATH geht, ich möchte jedoch sichergehen dass der Button immergefunden wird, da die Check-Out Seite ja nicht zwangsläufig die selbe ist...xD

Mein Aktueller Code sieht so aus:

Python:
check_box_submit = driver.find_element_by_xpath("//*[contains(text(), 'Anmelden')]")
check_box_submit.click()

Ich bekomme hierbei diese Fehlermeldung:

Code:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[contains(text(), 'Anmelden')]"}

Ich bin jedoch ziemlich sicher dass es dieses Element gibt und ich irgendwas falsch mache... Das ist der Button:

HTML:
<button class="btn btn-block btn-primary btn-lg" type="submit" id="btn-add-to-cart" data-original-title="" title="">
      <i class="fa fa-check"></i> Anmelden
</button>
 

Kirby.exe

Top Contributor
Das lustige ist, wenn ich per id suche dann funktioniert es...xD Was mache ich bloß falsch xD

Python:
check_box_submit = driver.find_element_by_xpath("//*[@id='btn-add-to-cart']")
 

Kirby.exe

Top Contributor
Naja wie auch immer xD Das Script funktioniert und führt alles korrekt durch :) Ich würde es gerne wie folgt aufziehen:

available.py wird von einem Scheduler gestartet(suche gerade noch xD) und soll dann prüfen ob die Webseiten verfügbar sind. Hier ist das erste Problem...Ich bin mir nicht sicher ob die angesteuerten Webseiten immer um die gleiche Uhrzeit freigeschaltet werden und müsste somit eine While True Schleife drum packen und das ist eher nicht so gut...Hat jemand eine Idee wie ich das gut lösen könnte?

Edit: Als Scheduler würde ich vermutlich einfach den Time Scheduler von Windows nehmen
 
Zuletzt bearbeitet:

Kirby.exe

Top Contributor
Das ist meine available.py die dann vom Scheduler aufgerufen werden würde:

Python:
import requests
import json
import datetime
import time

with open("Path to Directory", "r") as temp:
    database = json.load(temp)

kalenderwoche = datetime.date.today().isocalendar()[1]
check = []

while True:
    for entry in database[str(kalenderwoche)]:
        site_id = database[str(kalenderwoche)][entry]
        request = requests.get(url_comes_here)
        if request.status_code == 200:
            check.append(True)
        else:
            check.append(False)

    print(check)

    for x in check:
        if x == False:
            print("There is a Website missing! ERROR 404")
            break
    print("Sleep Activated!")
    time.sleep(10)
    print("Sleep Finsihed!")
 

Neue Themen


Oben