[英]Can't login with requests module
我有一個python機器人程序,可使用我的帳戶登錄我的學校網站並檢查作業。 就在昨天,他們更新了一些內容,現在我無法登錄...
我的代碼如下所示:
session_requests = requests.session()
result = session_requests.get("https://dienynas.tamo.lt/Prisijungimas/Login")
soup = BeautifulSoup(result.content, 'lxml')
SToken = soup.find(attrs={"name": "SToken"})['value']
authenticity_token = soup.find(attrs={"name": "__RequestVerificationToken"})['value']
payload = {
"UserName": "<my username>",
"Password": "<my password>",
"IsMobileUser": "false",
"ReturnUrl": "",
"RequireCaptcha": "false",
"Timestamp": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"SToken": SToken
}
headers = {
"cookie": "__RequestVerificationToken="+authenticity_token,
"origin": "https://dienynas.tamo.lt",
"referer": "https://dienynas.tamo.lt/Prisijungimas/Login",
"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
}
result = session_requests.post("https://dienynas.tamo.lt/", params = payload, headers = headers)
我得到的響應與我只是向該頁面發送一個簡單的GET
請求一樣。 我已經花了很多時間來解決這個問題,但仍然無法弄清楚到底是怎么回事。 請幫忙!
好像我發送了使用瀏覽器登錄時發送的所有數據,但是不起作用...
另外,我不知道這些信息是重要的,但在更新之前,我可以只此表的數據登錄- UserName
, Password
, IsMobileUser
, ReturnUrl
和__RequestVerificationToken
(這是現在在發送cookie
頭出於某種原因)
原來我很傻。 由於某種原因,我將自己的時間用於Timestamp
,而不是僅將其與SToken
一起使用。 然后,它們不匹配,服務器也無法登錄我。工作代碼:
session_requests = requests.session()
result = session_requests.get("https://dienynas.tamo.lt/Prisijungimas/Login")
soup = BeautifulSoup(result.content, 'lxml')
SToken = soup.find(attrs={"name": "SToken"})['value']
timestamp = soup.find(attrs={"name": "Timestamp"})['value']
payload = {
'UserName': '<myUsername>',
'Password': '<MyPassword>',
'IsMobileUser': 'false',
'ReturnUrl': '',
'RequireCaptcha': 'false',
'Timestamp': timestamp,
'SToken': SToken
}
r = session_requests.post("https://dienynas.tamo.lt/", data = payload)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.