Obtener una cookie usando Python Selenium

Fariba Laiq 21 junio 2023
  1. Instalar bibliotecas de requisitos previos
  2. Obtenga cookies con nombre usando Selenium en Python
  3. Obtenga todas las cookies usando Selenium en Python
Obtener una cookie usando Python Selenium

Selenium es un marco de prueba famoso para aplicaciones web. Escribimos scripts que toman el control del navegador web y realizan acciones específicas.

Este artículo pasará por un procedimiento paso a paso para configurar Selenium en Linux, obtener cookies y formatearlas en una solicitud HTTP.

Instalar bibliotecas de requisitos previos

Para usar el trazado de Selenium, primero debemos instalar Selenium y el controlador del navegador, usando ChromeDriver. Podemos lograr esto fácilmente ejecutando el siguiente comando en la terminal de elección:

Instalar ChromeDriver

ChromeDriver es otro ejecutable que Selenium WebDriver usa para interactuar con Chrome. Para automatizar tareas en el navegador web Chrome, también necesitamos instalar ChromeDriver.

Según la versión del navegador Chrome, debemos seleccionar un controlador compatible para él. Los siguientes son los pasos para instalar y configurar el ChromeDriver:

  • Haga clic en este enlace. Descarga ChromeDriver según la versión de tu navegador Chrome y el tipo de sistema operativo.
  • Si desea encontrar la versión de su navegador Chrome, haga clic en los tres puntos en la esquina superior derecha de Chrome, haga clic en Ayuda y seleccione Acerca de Google Chrome. Puedes ver la versión de Chrome en la sección Acerca de.
  • Extraiga el archivo zip y ejecute el controlador de Chrome.

Instalar selenio

Para instalar Selenium, usamos el siguiente comando.

pip install selenium

También es importante asegurarse de que trabajamos con la versión correcta de Python. En este artículo, estamos usando la versión 3.10.4.

Podemos verificar la versión de Python actualmente instalada ejecutando este comando en la terminal:

python --version

¡Y ahora estamos listos para comenzar!

Obtenga cookies con nombre usando Selenium en Python

Importamos las bibliotecas requeridas en el siguiente código y especificamos la ruta al controlador de Chrome. Asegúrese de cambiar la ruta en consecuencia cuando use este código.

Luego navegamos a la URL (http://www.google.com en nuestro caso) y agregamos la cookie con nuestro nombre y valor definidos para el contexto del navegador actual. Para obtener la cookie, usamos el método get_cookie() y pasamos el nombre de la cookie como argumento para obtener su valor.

Código de ejemplo:

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"))

Producción :

{'domain': 'www.google.com', 'httpOnly': False, 'name': 'my_cookie', 'path': '/', 'secure': True, 'value': 'delftstack'}

Obtenga todas las cookies usando Selenium en Python

Usamos el método get_cookies() para obtener todas las cookies sin especificar ningún argumento. En este caso, devuelve datos de cookies serializados para el contexto de navegación actual.

Sin embargo, devuelve un error si el navegador ya no está disponible.

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())

Producción :

[{'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