将请求会话 Cookie 导入浏览器



我正在尝试从与请求模块的会话中获取cookie,并将它们导入浏览器以"获得正在发生的事情的视觉效果"。我玩过网络驱动程序,但为了方便起见,我正在使用在 chrome 中编辑此 cookie 扩展程序,这已经派上用场了。

我有这样的东西。

import requests;
session=requests.Session();
session.cookies.clear();
url='http://www.mywebsite.com/login/;
data={'user': 'usernamehere',
    'password': 'passhere',
    'auth_token': 'tokenhere'
};
response=session.post(url,data=data);
print response.cookies

它返回类似以下内容:

<<class 'requests.cookies.RequestsCookieJar'>[Cookie(version=0, name='', value='', port=None, port_specified=False, domain='www.mywebsite.com',..., rest={}, rfc2109=False)]>

我想知道如何设置这个 cookie 或至少让它序列化。我试图用泡菜倾倒并得到一个

is not JSON serializable

错误。有什么方法可以添加到网络驱动程序中,或者至少以更漂亮的方式将其打印出来。

谢谢

您可以使用

requests.utils中的dict_from_cookiejar()

from requests.utils import dict_from_cookiejar
cookies = dict_from_cookiejar(response.cookies)

然后,您可以使用add_cookie()来设置浏览器的 Cookie:

driver = webdriver.Chrome()
# set browser cookies
for key, value in cookies.items():
    driver.add_cookie({'name': key, 'value': value})  # TODO: may be "domain" would also be needed?

最新更新