gpt4 book ai didi

python - 从 selenium 加载 cookie 以使用 cookielib 进行 Mechanize

转载 作者:太空狗 更新时间:2023-10-29 21:43:25 32 4
gpt4 key购买 nike

我正在尝试使用 selenium 登录网站,然后将 cookie 传输到 mechanize。我已经使用 selenium 成功登录并将其 session cookie 保存到一个变量中。尝试使用 cookielib 加载 cookie 时出现问题。

相关编码:

.
. #loging in to website with selenium
.
cookie = browser.get_cookies() #save the session cookie from selenium to variable "cookie"
.
. #starting up mechanize
.
cj = cookielib.LWPCookieJar()
.
.
.
cj.set_cookie(cookie) #load cookie from selenium

问题出现在用cj.set_cookie函数设置cookie时,出现如下错误信息

File "..../cookielib.py", line 1627, in set_cookie
if cookie.domain not in c: c[cookie.domain] = {}
AttributeError: 'list' object has no attribute 'domain'

最佳答案

如果您打印由 Selenium 收集的 cookie 并将其与由 mechanize/cookielib 收集的 cookie 进行比较,您会发现它们使用不同的格式。

要克服这个问题,您可以尝试这样的方法(您可能需要对其进行一些修改以满足您的需要。但您已经了解了总体思路):

cj = cookielib.LWPCookieJar()

for s_cookie in cookie:
cj.set_cookie(cookielib.Cookie(version = 0, name = s_cookie['name'], value = s_cookie['value'], port = '80', port_specified = False, domain = s_cookie['domain'], domain_specified = True, domain_initial_dot = False, path = s_cookie['path'], path_specified = True, secure = s_cookie['secure'], expires = s_cookie['expiry'], discard = False, comment = None, comment_url = None, rest = None, rfc2109 = False))

一个更奇特的解决方案是遍历 selenium cookies 并制作一个包含 name:value 对的字典

关于python - 从 selenium 加载 cookie 以使用 cookielib 进行 Mechanize ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20306110/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com