我希望能够读取从请求发送的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没有明确的解释。
答案 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中的样子