要从登陆页面获取相关数据,记得要用Chrome谷歌浏览器,其他浏览器可能布局有差别。
要打开谷歌浏览器的保留日志功能,这样登录信息会继续保留在列表里,点开链接可以查看载荷里的数据,即用户名密码等相关登录信息。
app.py
import requests
url = "https://api.cheshi.com/services/common/api.php?api=login.Login"
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.201.400 QQBrowser/11.9.5325.400"
}
data = {
"act": "login",
"mobile": "手机号",
"source": "pc",
"password": "登录密码",
"hold_time": "yes",
}
# res = requests.post(url=url, headers=headers, data=data)
# cookies = res.cookies
# admin_url = "https://my.cheshi.com/user/"
# admin_res = requests.get(url=admin_url, headers=headers, cookies=cookies)
# with open("./app.html", "w", encoding="utf-8") as f:
# f.write(admin_res.text)
session = requests.session()
session.post(url=url, headers=headers, data=data)
admin_url = "https://my.cheshi.com/user/"
admin_res = session.get(url=admin_url, headers=headers)
print(admin_res.text)
with open("./app2.html", "w", encoding="utf-8") as f:
f.write(admin_res.text)
可以只用cookies来进行操作,即被注释掉的代码:
res = requests.post(url=url, headers=headers, data=data)
cookies = res.cookies
admin_url = "https://my.cheshi.com/user/"
admin_res = requests.get(url=admin_url, headers=headers, cookies=cookies)
with open("./app.html", "w", encoding="utf-8") as f:
f.write(admin_res.text)
使用request.session()比cookies代码要简洁一点点。最后都获取到了登录后的页面信息。