我正在尝试登录该网站,它有一个隐藏字段,需要一个唯一生成的 key ,我使用 BS 获得该 key ,并通过使用 session 确保它在 get 和 post 请求中相同。但是,当我打印时它仍然显示登录页面
#!/usr/bin/env python3
import requests
from bs4 import BeautifulSoup
headers = {"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36"}
url = 'https://www.unovarpg.com/login.php'
with requests.session() as s:
load = s.get(url,headers=headers)
soup = BeautifulSoup(load.text,"html5lib")
a = soup.find('input',type='hidden')['value']
payload = {'username':'myusername','password':'mypassword','unovarpg':a,'rememberMe':'checkbox'}
x = s.post(url,data=payload,headers=headers)
print(x.text)
最佳答案
如果您在 Chrome/Firefox 中使用 DevTool
来查看浏览器在您登录时如何以及在何处发送数据,那么您将看到它将数据发送到不同的网址 - 使用 ?doLogin
在最后。
https://www.unovarpg.com/login.php?doLogin
关于Python POST 请求未经过登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59463832/