2

以下のコードに見られるように、Webdriver オブジェクトからリクエストに Cookie をコピーしようとしています。スクリプトの最後のステートメントでこのエラー メッセージが表示されます。

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)

なぜこのエラーが発生するのですか?どうすれば修正できますか?

4

1 に答える 1

1

どのバージョンのリクエストを使用していますか? 過去数回のリリースで、リクエストが Cookie を処理する方法が大幅に変更されました

私の場合、コードはリクエスト 0.14.0 (執筆時点での最新リリース) を使用して例外を生成せずに実行されます。

于 2012-09-18T19:33:46.483 に答える