Ошибка копирования файлов cookie между веб-драйвером и запросами

Я пытаюсь скопировать файлы 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)

Почему я получаю эту ошибку и как ее исправить?


person Raphael E.    schedule 08.09.2012    source источник


Ответы (1)


Какую версию запросов вы используете? В последние несколько выпусков были внесены значительные изменения в способ обработки файлов cookie.

Для меня ваш код работает без генерации исключения с использованием запросов 0.14.0 (самый последний выпуск на момент написания).

person bjmc    schedule 18.09.2012
comment
Действительно, новая версия запросов (0.14) решает проблему. Большое спасибо. - person Raphael E.; 23.09.2012