我正在尝试将 cookie 从 webdriver 对象复制到请求,如下面的代码所示。我在脚本的last 语句中收到此错误消息。
TypeError: cannot convert dictionary update sequence element #0 to a sequence
import requests
import cookielib
from selenium import webdriver
import urllib
driver = webdriver.Chrome()
driver.get("http://www.google.com/")
cj = cookielib.CookieJar()
#iterate the drive Cookies
for c in driver.get_cookies():
print "%s -> %s" % (c['name'], c['value'])
ck = cookielib.Cookie(name=c['name'], value=urllib.unquote(c['value']), domain=c['domain'], \
path=c['path'], \
secure=c['secure'], rest={'HttpOnly': c['http_only']}, \
version =0, port=None,port_specified=False, \
domain_specified=False,domain_initial_dot=False, \
path_specified=True, expires=None, discard=True, \
comment=None, comment_url=None, rfc2109=False)
print ck
cj.set_cookie(ck)
rsp = requests.get('http://www.cisco.com/', cookies=cj)
为什么会出现此错误,我该如何解决?
最佳答案
您使用的是什么版本的请求?已有significant changes最近几个版本中请求处理 cookie 的方式。
对我来说,您的代码运行时不会使用 requests 0.14.0(撰写本文时的最新版本)生成异常。
关于python - 在 webdriver 和请求之间复制 cookie 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12333004/