【问题标题】:Importing Request Session cookies to browser将请求会话 cookie 导入浏览器
【发布时间】:2016-02-19 08:57:34
【问题描述】:

我正在尝试从与请求模块的会话中获取 cookie,并将它们导入浏览器以“直观地了解”正在发生的事情。我玩过网络驱动程序,但为了方便起见,我使用的是 chrome 中的 Edit this cookie extension,它派上用场了。

我有这样的东西。

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

错误。有什么方法可以添加到 webdriver 或至少以更漂亮的方式打印出来。

谢谢

【问题讨论】:

  • 您希望它们采用哪种格式?

标签: python session cookies python-requests


【解决方案1】:

您可以使用dict_from_cookiejar() 中的requests.utils

from requests.utils import dict_from_cookiejar

cookies = dict_from_cookiejar(response.cookies)

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

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?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 2014-02-21
    • 2014-04-04
    • 2019-06-08
    • 2020-01-20
    相关资源
    最近更新 更多