Holen Sie sich Cookie mit Python Selenium

Fariba Laiq 21 Juni 2023
  1. Installieren Sie erforderliche Bibliotheken
  2. Holen Sie sich benannte Cookies mit Selenium in Python
  3. Holen Sie sich alle Cookies mit Selenium in Python
Holen Sie sich Cookie mit Python Selenium

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'}]
Fariba Laiq avatar Fariba Laiq avatar

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