2012-09-08 8 views
2

아래 코드에서 볼 수 있듯이 웹 드라이브 개체에서 요청으로 쿠키를 복사하려고합니다. 에 마지막으로 문으로이 오류 메시지가 표시됩니다.웹 드라이브와 요청간에 쿠키를 복사하는 중 오류가 발생했습니다.

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) 

왜이 오류를받을 수 있나요, 그리고 어떻게 그것을 해결할 수 있습니까?

답변

1

어떤 버전의 요청을 사용하고 있습니까? 요청이 지난 몇 가지 릴리스에서 쿠키를 처리하는 방식에는 significant changes이있었습니다.

제게는 0.14.0 (작성 당시의 최신 릴리스) 요청을 사용하여 예외를 생성하지 않고 코드가 실행됩니다.

+0

실제로 새 요청 버전 (0.14)이이 문제를 해결합니다. 많은 감사합니다. –