Skip to main content
 首页 » 编程设计

python之在 webdriver 和请求之间复制 cookie 时出错

2025年05月04日39虾米姐

我正在尝试将 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(撰写本文时的最新版本)生成异常。