Schönen guten Abend,
ich bin neu in der Materie Python.
Ich möchte automatisiert eine Website besuchen und ein Formular ausfüllen. Dies scheitert jedoch schon beim Aufrufen der Webseite.
Wenn ich via Firefox die Seite aufrufe muss ich mich nicht jedes mal einloggen, da wahrscheinlich meine Session noch gültig ist.
Wie kann ich dies jetzt mit Selenium machen? Da das Problem darin besteht, dass ich zum Login jeweils einen Pin eingeben muss, welcher mir per SMS geschickt wird.
Habe es versucht mittels Cookies aber wahrscheinlich ist dies falsch
from selenium import webdriver
driver = webdriver.Firefox(executable_path= "geckodriver.exe")
driver.get_cookie("a")
driver.get('.../prepaid/?from=auth')
driver.add_cookie({"a"})
driver.get_cookie("a")
Ich hoffe es ist irgendwie verständlich.
Diese Projekt wurde schon mit einer GUI im Java Bereich realisiert, ich möchte es aber komfortabler und schlanker haben, deshalb wollte ich zu Python
Danke
Selenium - Login?
Wenn du das glaubst, hast du wahrscheinlich sowas hier gefunden: https://stackoverflow.com/questions/150 ... -webdriver
Warum probierst du das nicht aus?
Warum probierst du das nicht aus?
Dies habe ich schon gefunden, jedoch kriege ich ja keine Cookies, da ich mich ja vorher einloggen muss (manuell). Und dann zu der speziellen Seite navigieren muss. Wüsste nicht wie ich dann die cookies speichern kann.__deets__ hat geschrieben: ↑Dienstag 20. Juli 2021, 07:42 Wenn du das glaubst, hast du wahrscheinlich sowas hier gefunden: https://stackoverflow.com/questions/150 ... -webdriver
Warum probierst du das nicht aus?
Daher war jetzt die Idee so wie hier https://www.youtube.com/watch?v=vhjKJ7huN-w
Einen Cookie zu erstellen.
Jedoch habe ich das Problem, dass die IDs länger als 16 Zeichen sind und daher excel mit dem 17. Zeichen nur noch 0000 schreibt.
Das wird doch in dem Beispiel vorgemacht. Du musst eben ein Skript schreiben, dass den Login Durchführt, inklusive SMS Angabe, und DANN die Cookies sichern.
Ich kann das Video gerade nicht schauen, aber sich selbst Cookies zu generieren ist ziemlich sicher Unsinn. Die sind nur gültig wenn sie vom Server kommen.
Ich kann das Video gerade nicht schauen, aber sich selbst Cookies zu generieren ist ziemlich sicher Unsinn. Die sind nur gültig wenn sie vom Server kommen.
Selbst generieren nicht. Ich nehme den, welchen ich durch das manuelle Aufrufen der Webseite bekomme. Also mittels Webinspektor.
Hmm dann muss ich wahrscheinlich mein Handy doch anschließen, den Code aus der SMS auslesen, damit ich an den Cookie komme.
Schaut mir nämlich sehr komplex aus mit Handy auslesen.
Hmm dann muss ich wahrscheinlich mein Handy doch anschließen, den Code aus der SMS auslesen, damit ich an den Cookie komme.
Schaut mir nämlich sehr komplex aus mit Handy auslesen.
Nein, weil schon eine Login Session bestand.
Ich habe mich einmalig in mein Konto eingeloggt. Danach konnte ich die Seite besuchen, als angemeldeter Besucher.
Ist doch hier genauso. Ich bin solange angemeldet, bis ich die Cookies lösche oder sie verfallen.
Jedoch wird bei python nicht auf meinen vorhanden Browser zugegriffen sondern, so wie ich es bei Selenium verstanden habe, ein neue Kopie von einem Browser erstellt ohne Cookies.
Ich habe mich einmalig in mein Konto eingeloggt. Danach konnte ich die Seite besuchen, als angemeldeter Besucher.
Ist doch hier genauso. Ich bin solange angemeldet, bis ich die Cookies lösche oder sie verfallen.
Jedoch wird bei python nicht auf meinen vorhanden Browser zugegriffen sondern, so wie ich es bei Selenium verstanden habe, ein neue Kopie von einem Browser erstellt ohne Cookies.
Bin
Das Skript schläft 1 min. In dieser Zeit logge ich mich ein. Dann rufe ich die Seite nochmal auf und speicher mir den Cookie.
Dies mache ich einmalig bis mein Cookie abgelaufen ist.
Danach wird die Seite einfach mit dem Cookie geöffnet.
Eine Baustelle beseitigt
Diesen Code habe ich jetzt doch verwendet, und ein Workaround gemacht.__deets__ hat geschrieben: ↑Dienstag 20. Juli 2021, 07:42 Wenn du das glaubst, hast du wahrscheinlich sowas hier gefunden: https://stackoverflow.com/questions/150 ... -webdriver
Warum probierst du das nicht aus?
Das Skript schläft 1 min. In dieser Zeit logge ich mich ein. Dann rufe ich die Seite nochmal auf und speicher mir den Cookie.
Dies mache ich einmalig bis mein Cookie abgelaufen ist.
Danach wird die Seite einfach mit dem Cookie geöffnet.
Code: Alles auswählen
from selenium import webdriver
import pickle
import time
driver = webdriver.Firefox(executable_path= "C:\geckodriver.exe")
# Speichern des Cookies
#driver.get('prepaid/')
#time.sleep(60)
#driver.get('prepaid/')
#pickle.dump(driver.get_cookies() , open("cookies.pkl","wb"))
driver.get('prepaid/')
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
driver.add_cookie(cookie)
driver.get('prepaid/')