我正在尝试使用 python 和 requests
模块登录网站。
我的问题是,即使我输入了用户名/密码并尝试在登录后访问页面,我仍然看到登录页面 - 换句话说,我没有通过登录页面,即使虽然看起来很成功。
我了解到每个网站的流程可能不同,因此我需要添加什么来解决问题并不明显。
有人建议我下载一个类似 Fiddler 的网络流量窥探器然后尝试使用我的 python 脚本复制操作。
我已经下载了 Fiddler,但我对如何查找和复制我需要的操作有点不知所措。
如有任何帮助,我们将不胜感激。
我的原始代码:
import requests
payload = {
'login_Email': 'xxxxx@gmail.com',
'login_Password': 'xxxxx'
}
with requests.Session() as s:
p = s.post('https://www.auction4cars.com/', data=payload)
print p.text
最佳答案
如果您查看浏览器开发者工具,您可能会看到登录 POST 请求需要提交到不同的 URL:
https://www.auction4cars.com/Home/UserLogin
请注意,payload
也需要:
payload = {
'login_Email_or_Username': 'xxxxx@gmail.com',
'login_Password': 'xxxxx'
}
在这样做之前我仍然会访问登录页面并设置标题:
HOME_URL = 'https://www.auction4cars.com/'
LOGIN_URL = "https://www.auction4cars.com/Home/UserLogin"
with requests.Session() as s:
s.headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
}
s.get(HOME_URL)
p = s.post(LOGIN_URL, data=payload)
print(p.text) # or use p.json() as, I think, the response format is JSON
关于python - 使用 Fiddler 使用 python 脚本复制浏览器操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53916602/