如何查看以python发送的cookie

时间:2019-07-10 23:58:05

标签: python cookies python-requests

我希望能够读取从请求发送的cookie,以便可以导入它们。

import requests
URL = 'https://secure.net.wwe.com/enterworkflow.do?flowId=account.login'

Send = requests.get(URL)

print(Send.cookies.get_dict())

Desired Output:
>>>> cookies = {'test':'likethis'}

我了解如何查看设置的cookie,但是对于如何查看随请求一起发送的cookie没有明确的解释。

1 个答案:

答案 0 :(得分:0)

因此,通过python请求从响应中获取cookie的方法就是使用cookie jar。

    >>> import requests
>>> URL = 'https://secure.net.wwe.com/enterworkflow.do?flowId=account.login'
>>>
>>> Send = requests.get(URL)
>>> Send.cookies
<RequestsCookieJar[Cookie(version=0, name='SESSION_1', value='wf_flowId%3D%3D%3Daccount.login%7Estage%3D%3D%3D3%7EflowId%3D%3D%3Daccount.login', port=None, port_specified=False, domain='.wwe.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False)]>

要将此响应转换为字典,可以使用以下方法

>>> requests.utils.dict_from_cookiejar(Send.cookies)
{'SESSION_1': 'wf_flowId%3D%3D%3Daccount.login%7Estage%3D%3D%3D3%7EflowId%3D%3D%3Daccount.login'}

但是您询问了与请求一起发送哪些cookie ...这很令人困惑,所以我决定深入研究一下,看看能找到什么。

您可以通过创建一个会话并调用cookiejar方法来查看python cookiejar中是否有cookie。

>>> session = requests.Session()
>>> session.cookies
<RequestsCookieJar[]> //No Cookies?
>>> session.get(URL)
   <Response [200]>
>>> requests.utils.dict_from_cookiejar(session.cookies)
{'SESSION_1': 'wf_flowId%3D%3D%3Daccount.login%7Estage%3D%3D%3D3%7EflowId%3D%3D%3Daccount.login'} //Cookies!

或仅调用cookiejar

>>> print requests.cookies.RequestsCookieJar()
<RequestsCookieJar[]>

所以对我来说这足以证明没有发送cookie。 AFAIK,除非明确设置,否则cookie不会与request.get一起发送。为了证明这一点,我通过Burp Suite运行了您的请求。

>>> http = "http://127.0.0.1:8080"
>>> https = "https://127.0.0.1:8080"
>>> ftp = "https://127.0.0.1:8080"
>>> proxy_dict = {
...   "http": http,
...   "https": https,
...   "ftp": ftp
... }
>>> Send = requests.get(URL, proxies=proxy_dict, verify=False)

这就是请求在Burp中的样子

enter image description here