首先,这是我的代码:
import requests
payload = {'name':'loginname',
'password': 'loginpassword'}
requests.post('http://myurl/auth',data=payload,verify=False)
rl = requests.get('http://myurl/dashboard',verify=False)
print(rl.text)
我的问题:
我收到状态代码200,表示登录成功。 但是当我尝试访问受保护的页面http://myurl/dashboard时,我的输出不适合。它向我展示了登录的第一页,我不明白为什么。
我知道有很多这样的问题,但我研究了每个答案和文档,但我没有得到它。
任何帮助都会非常好。这让我感到很沮丧。提前谢谢!
答案 0 :(得分:2)
您需要使用Session
对象让requests
跟踪您的Cookie,例如在requests.post
登录操作后设置的登录Cookie。引用[那里的第一个例子:
s = requests.Session()
s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get('http://httpbin.org/cookies')
print(r.text)
# '{"cookies": {"sessioncookie": "123456789"}}'
所以在你的情况下:
import requests
payload = {'name': 'loginname',
'password': 'loginpassword'}
s = requests.Session()
r1 = s.post('http://myurl/auth', data=payload, verify=False)
if r1.status_code == 200: # not necessary if you are sure it would login successfully
r2 = s.get('http://myurl/dashboard', verify=False)