【问题标题】:Error copying cookies between webdriver and requests在 webdriver 和请求之间复制 cookie 时出错
【发布时间】:2012-09-02 05:12:08
【问题描述】:

我正在尝试将 cookie 从 webdriver 对象复制到请求中,如下面的代码所示。我在脚本的 last 语句中收到此错误消息。

TypeError: 无法将字典更新序列元素 #0 转换为序列

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)

为什么会出现此错误,我该如何解决?

【问题讨论】:

    标签: python cookies selenium-webdriver python-requests


    【解决方案1】:

    您使用的是什么版本的请求?在过去的几个版本中,请求处理 cookie 的方式有 significant changes

    对我来说,您的代码使用 requests 0.14.0(撰写本文时的最新版本)运行时不会产生异常。

    【讨论】:

    • 确实,新的 requests 版本 (0.14) 解决了这个问题。非常感谢。
    猜你喜欢
    • 2016-03-28
    • 2011-10-26
    • 2016-07-02
    • 1970-01-01
    • 2014-10-19
    • 2017-01-23
    • 2019-07-11
    • 2015-08-25
    • 2021-06-09
    相关资源
    最近更新 更多