无法使用Python请求执行多个POST
我试图以编程方式登录,但出现无法使用Python请求执行多个POST,python,authentication,python-requests,restful-authentication,Python,Authentication,Python Requests,Restful Authentication,我试图以编程方式登录,但出现401错误。这是我的代码: with requests.Session() as s: resp = s.get(dydraLogin) soup = BeautifulSoup(resp.text,"html5lib") csrfToken = soup.find('meta',{'name':'csrf-token'}).get('content') # print csrfToken payloadLogin = {
401
错误。这是我的代码:
with requests.Session() as s:
resp = s.get(dydraLogin)
soup = BeautifulSoup(resp.text,"html5lib")
csrfToken = soup.find('meta',{'name':'csrf-token'}).get('content')
# print csrfToken
payloadLogin = {
'account[login]':key,
'account[password]':'',
'csrfmiddlewaretoken':csrfToken,
'next':'/'
}
payloadPOST = {
'url': sesameURL
}
headersPOST = {
'Content-Type': 'application/n-quads',
'Referer': dydraLogin,
'User-Agent': 'python',
'account[login]':key,
'account[password]':'',
'id':csrfToken,
'csrfmiddlewaretoken':csrfToken,
'next':'/',
}
# paramsPOST = {
# 'auth_token': key
# }
# print payload
p = s.post(dydraLogin,data=payloadLogin, headers=dict(Referer=dydraLogin))
print p
try:
q = s.post(dydraUrl,data=payloadPOST, headers=headersPOST)
print q.text
except requests.exceptions.RequestException as e:
print e
这是输出:
<Response [200]>
401 Unauthorized
更新2:
如果我在url中使用身份验证密钥,我可以访问dydraUrl:
print s.get('http://dydra.com/username/repositories/rep_name/statements?auth_token=<key>').text
print s.get('http://dydra.com/username/repositories/rep_name/statements?auth_token=)。文本
但是,当我在payloadPOST中使用URL时,401错误仍然存在。登录页面将发送回一个cookie,其中包含证明您登录的身份验证令牌。您需要将此cookie与未来的请求一起发送回去。请参阅尝试了该操作,但错误仍然存在。代码在更新1中。
print s.get('http://dydra.com/username/repositories/rep_name/statements?auth_token=<key>').text