python请求获取cookie

Dan*_*nfi 41 python python-requests

x = requests.post(url, data=data)
print x.cookies
Run Code Online (Sandbox Code Playgroud)

我使用请求库从网站获取一些cookie,但我只能从响应中获取cookie,如何从请求中获取cookie?谢谢!

ale*_*cxe 78

或者,您可以在请求之前和之后使用requests.Session和观察cookies:

>>> import requests
>>> session = requests.Session()
>>> print(session.cookies.get_dict())
{}
>>> response = session.get('http://google.com')
>>> print(session.cookies.get_dict())
{'PREF': 'ID=5514c728c9215a9a:FF=0:TM=1406958091:LM=1406958091:S=KfAG0U9jYhrB0XNf', 'NID': '67=TVMYiq2wLMNvJi5SiaONeIQVNqxSc2RAwVrCnuYgTQYAHIZAGESHHPL0xsyM9EMpluLDQgaj3db_V37NjvshV-eoQdA8u43M8UwHMqZdL-S2gjho8j0-Fe1XuH5wYr9v'}
Run Code Online (Sandbox Code Playgroud)

  • 这不会返回`path`和`domain`,有什么建议吗? (5认同)
  • @OrDuan 如[此处](/sf/answers/2547095841/) 所述,您可以执行`r = requests.get('...')`,然后使用`r 迭代Cookie 对象。 cookies._cookies` 这是一个字典,其键是 `[<domain>][<path>]` (3认同)

Or *_*uan 14

如果您需要每个未公开的cookie的path和,您可以手动解析 cookie,例如:domainget_dict()

[
    {'name': c.name, 'value': c.value, 'domain': c.domain, 'path': c.path}
    for c in session.cookies
]
Run Code Online (Sandbox Code Playgroud)