我正在尝试登录网络,起初我尝试了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。
答案 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
提供。