如何使用python请求auth并同时获取cookie

时间:2017-03-22 08:58:43

标签: python cookies request

我正在尝试登录网络,起初我尝试了requests.session:

import requests
session=requests.Session()
params={"username":"woniu","password":"password"}
s=session.post(url,params)  
print(s.cookies.get_dict())

但登录失败,并且没有cookie返回。(我想也许这个网站是HTTP基本的aceess认证,我只能使用auth)

然后我尝试使用身份验证请求

from requests.auth import AuthBase
from requests.auth import HTTPBasicAuth
auth=HTTPBasicAuth('woniu','password')
r=requests.post(url",auth=auth)

这次登录成功,但仍然没有cookie返回。

问题是:即使我登录成功,当我尝试发布某些内容时,我发现自己返回登录页面。 这是因为我没有处理饼干?我如何能够成功登录并同时获取cookie。

1 个答案:

答案 0 :(得分:0)

如果您确定知道该页面:
1. HTTPAuth是否受到保护 2.预计POST请求

然后这应该工作(测试):

>>> import requests
>>> url = 'http://.../auth'
>>> r = requests.post(url, data={'post_data': '987654321'},
...                   auth=('user123', 'pass456'))
>>> r
<Response [200]>
>>> r.cookies.items()
[('secret_cookie', '987654321')]

请注意,POST数据随data参数一起提供,HTTP Auth凭据仅作为元组auth提供。