相关疑难解决方法(0)

如何使用 Python3、Selenium Chrome WebDriver 在第一次请求之前预加载 cookie?

add_cookie()在对域stackoverflow.comget()上的页面进行实际请求之前,是否可以在 Selenium Chrome WebDriver 中添加用于域的 cookie,例如stackoverflow.com

尝试时:

driver.webdriver.add_cookie({'name' : 'testcookie', 'value' : 'testvalue', 'domain' : 'stackoverflow.com'})
driver.webdriver.get('https://stackoverflow.com/')
Run Code Online (Sandbox Code Playgroud)

我得到“您只能为当前域设置 cookie ”。

我想说我看到并尝试了一些避免问题而不是解决问题的解决方案,例如预先访问域上的 404 页面以在 Selenium 中创建“域槽”,然后再向其添加 cookie,但是虽然这些解决方案允许添加他们仍然需要在未设置任何 cookie 的情况下提出一项额外请求并与网站联系。

在处理 CAPTCHA 系统和一些非常具体的 WAF 时,这是一个问题,这些系统在连续看到一个不带 cookie 的请求,然后又看到另一个带 cookie 的请求时会皱起眉头,而这个请求只能在完成登录过程后才被说出。

cookies selenium google-chrome webdriver python-3.x

13
推荐指数
1
解决办法
8210
查看次数

Selenium Chromedriver 添加 cookie - 无效域错误

我正在尝试存储和上传我通过 selenium 从网页中检索的 cookie。

我是饼干的新手,所以请告诉我我做错了什么。我在尝试学习。

我用硒打开一个页面,手动登录,执行一些操作然后等待..(我的代码设置为在 30 秒后获取 cookie)

print "adding cookies now"
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
    driver.add_cookie(cookie)
Run Code Online (Sandbox Code Playgroud)

之后,我的 cookies.pkl 文件看起来像这样:

(lp0
(dp1
Vdomain
p2
V.twitter.com
p3
sVsecure
p4
I00
sVvalue
p5
V"v3:1484006785862560132892059"
p6
sVexpiry
p7
F1531267585.126113
sVpath
p8
# more lines
Run Code Online (Sandbox Code Playgroud)

在此之后log_in_and_store(),我尝试在加载此 cookie 时使用 selenium 重新打开页面。如果操作正确,它应该会打开我离开的页面!不是登录页面。

当我尝试像这样将我的 cookie 上传到网页时:

driver.get('http://www.website.com')
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
    print cookie
    driver.add_cookie(cookie)
Run Code Online (Sandbox Code Playgroud)

add_cookies 抛出此错误:

selenium.common.exceptions.WebDriverException:消息:无效的 cookie 域:无效域:“.twitter.com”(会话信息:chrome=55.0.2883.95)(驱动程序信息:chromedriver=2.24.417412(ac882d3ce7c0d99292439bf305a6f),cc8005a6f X 10.12.1 x86_64)

我已经试过了,所以请不要将我链接到它(即使我在正确的域中,Selenium addCookie 也得到了无效的 …

python cookies selenium pickle selenium-webdriver

8
推荐指数
1
解决办法
1万
查看次数