如何在Selenium中使用相同的会话

2024-09-29 23:14:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python和selenium开发一个scrapy程序。我想刮取的网站需要登录才能采取任何行动。每次当我运行我的程序时,它都要求我登录到我的帐户。我通过添加cookie发现它可以让浏览器记住我的会话,但不幸的是它仍然无法登录。有人能用代码指导吗?谢谢

我的代码:

import pickle
import time
from selenium import webdriver

PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)

#product URL

driver.get("www.//xxx123.com/xxx")

driver.add_cookie({'domain': '.xxx123.com', 'expiry': 1677743964, 'httpOnly': False, 'name': '_ga','path': '/', 'secure': False, 'value': 'GA1.1.203675790.1614671945'})

Tags: path代码import程序comfalse网站cookie
1条回答
网友
1楼 · 发布于 2024-09-29 23:14:54

当您使用Chrome驱动程序时,您应该知道,每次启动它时,它都会创建一个临时配置文件,当您关闭它时,该文件将被删除

根据您试图刮取的网页,从cookie中恢复会话数据可能是一项挑战。首先创建一个概要文件并重用它可能更容易,只要它允许您用于持久性目的

options = webdriver.ChromeOptions() 
options.add_argument("user-data-dir=C:\\Path") #Path to your chrome profile
driver = webdriver.Chrome(executable_path="C:\\Program Files (x86)\\chromedriver.exe", chrome_options=options)

您的Chrome配置文件的路径应该在此处可用:chrome://version/

根据我的经验,最好创建一个方法来为您处理登录。尝试检测登录页面中的元素;如果它不在那里,照常进行。如果是,请执行登录

相关问题 更多 >

    热门问题