Holen Sie sich Cookie mit Python Selenium
- Installieren Sie erforderliche Bibliotheken
- Holen Sie sich benannte Cookies mit Selenium in Python
- Holen Sie sich alle Cookies mit Selenium in Python
Selenium ist ein bekanntes Testframework für Webanwendungen. Wir schreiben Skripte, die die Kontrolle über den Webbrowser übernehmen und bestimmte Aktionen ausführen.
Dieser Artikel führt Sie Schritt für Schritt durch, um Selenium unter Linux einzurichten, Cookies abzurufen und sie in einer HTTP-Anfrage zu formatieren.
Installieren Sie erforderliche Bibliotheken
Um das Plotten von Selenium nutzen zu können, müssen wir zuerst den Selenium- und Browsertreiber mit ChromeDriver
installieren. Wir können dies leicht erreichen, indem wir den folgenden Befehl im Terminal Ihrer Wahl ausführen:
ChromeDriver
installieren
ChromeDriver
ist eine weitere ausführbare Datei, die Selenium WebDriver
verwendet, um mit Chrome zu interagieren. Um Aufgaben im Chrome-Webbrowser zu automatisieren, müssen wir auch ChromeDriver
installieren.
Basierend auf der Version des Chrome-Browsers müssen wir einen kompatiblen Treiber dafür auswählen. Im Folgenden sind die Schritte zum Installieren und Konfigurieren des ChromeDriver
aufgeführt:
-
Klicken Sie auf diesen Link. Laden Sie
ChromeDriver
entsprechend der Version Ihres Chrome-Browsers und dem Typ des Betriebssystems herunter. -
Wenn Sie die Version Ihres Chrome-Browsers herausfinden möchten, klicken Sie auf die drei Punkte in der oberen rechten Ecke von Chrome, klicken Sie auf
Hilfe
und wählen SieÜber Google Chrome
. Sie können die Chrome-Version im AbschnittÜber
sehen. -
Extrahieren Sie die ZIP-Datei und führen Sie den Chrome-Treiber aus.
Installieren Sie Selen
Um Selenium zu installieren, verwenden wir den folgenden Befehl.
pip install selenium
Es ist auch wichtig sicherzustellen, dass wir mit der richtigen Python-Version arbeiten. In diesem Artikel verwenden wir die Version 3.10.4
.
Wir können die aktuell installierte Python-Version überprüfen, indem wir diesen Befehl im Terminal ausführen:
python --version
Und jetzt sind wir alle startklar!
Holen Sie sich benannte Cookies mit Selenium in Python
Wir haben die erforderlichen Bibliotheken in den folgenden Code importiert und den Pfad zum Chrome-Treiber angegeben. Stellen Sie sicher, dass Sie den Pfad entsprechend ändern, wenn Sie diesen Code verwenden.
Dann navigierten wir zur URL (in unserem Fall http://www.google.com) und fügten das Cookie mit unserem definierten Namen und Wert für den Kontext des aktuellen Browsers hinzu. Um das Cookie zu erhalten, haben wir die Methode get_cookie()
verwendet und den Cookie-Namen als Argument übergeben, um seinen Wert zu erhalten.
Beispielcode:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
driver = webdriver.Chrome(r"E:\chromedriver_win32\chromedriver.exe")
driver.get("http://www.google.com")
driver.add_cookie({"name": "my_cookie", "value": "delftstack"})
print(driver.get_cookie("my_cookie"))
Ausgang:
{'domain': 'www.google.com', 'httpOnly': False, 'name': 'my_cookie', 'path': '/', 'secure': True, 'value': 'delftstack'}
Holen Sie sich alle Cookies mit Selenium in Python
Wir haben die Methode get_cookies()
verwendet, um alle Cookies ohne Angabe eines Arguments zu erhalten. In diesem Fall werden serialisierte Cookie-Daten für den aktuellen Browserkontext zurückgegeben.
Es gibt jedoch einen Fehler zurück, wenn der Browser nicht mehr verfügbar ist.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
driver = webdriver.Chrome(r"E:\chromedriver_win32\chromedriver.exe")
driver.get("http://www.google.com")
driver.add_cookie({"name": "cookie1", "value": "delftstack1"})
driver.add_cookie({"name": "cookie2", "value": "delftstack2"})
print(driver.get_cookies())
Ausgang:
[{'domain': 'www.google.com', 'httpOnly': False, 'name': 'cookie2', 'path': '/', 'secure': True, 'value': 'delftstack2'}, {'domain': 'www.google.com', 'httpOnly': False, 'name': 'cookie1', 'path': '/', 'secure': True, 'value': 'delftstack1'}, {'domain': '.google.com', 'expiry': 1683449080, 'httpOnly': True, 'name': 'NID', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': '511=jG4Loar3RnUPlWlCqLgy0_91KhWEVmdnIfcppZaWR_KThFAtcD8JMCOYG_Yf1TrevFkG5Y9WOpfx9HV6MFamlRvchElWP46TiH-DCCf_bnto4-HOGTZpDN5cSCRI2NHZahNbhgPu4oMDM2My4MK3kQc7y_7N8ShOIAqDe0j_irs'}, {'domain': '.google.com', 'expiry': 1683189877, 'httpOnly': True, 'name': 'AEC', 'path': '/', 'sameSite': 'Lax', 'secure': True, 'value': 'AakniGPzQVs6uZH9iaixodFHhyrFSOk2Ji7p3ATkJSmOOlngCml58E6Khg'}, {'domain': '.google.com', 'expiry': 1670229880, 'httpOnly': False, 'name': '1P_JAR', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': '2022-11-05-08'}]
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn