python登陆问题
import requestsimport os
# 创建一个session
session = requests.session()
# 可以提前给session设置好请求头或者cookie
session.headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36"
}
# 登录
url = "http://域名/dl/"
data = {
"username": "root",
"password": "root",
"yzm": "",# 验证码需要填入这里
}
# 获取验证码图片
yzm_url = 'http://域名/yzm'
resp = session.get(yzm_url)
file_path = r"C:\Users\huawei\Desktop\\"# 请确保该路径存在,并且有写入权限
file_name = "captcha.jpg"
file_full_path = os.path.join(file_path, file_name)
with open(file_full_path, mode="wb") as f:
f.write(resp.content)# 将验证码图片保存到本地
# 输入验证码
tmblv = input("请输入验证码:")
data["yzm"] = tmblv# 将验证码加入到data中
print(data)
# 发送登录请求
session.post(url, data=data)
# 后续的所有请求都会带着cookie
view_url = "http://域名/view/"
resp_2 = session.get(view_url)
print(resp_2.text)# 输出请求到的页面内容
我最后打印的内容还是登陆网站的源代码内容 并不是首页内容 这个是为什么呢并且我的账号密码是正确的验证码不知道是否一致 从您提供的代码来看,问题可能出现在验证码的处理上。请尝试以下修改:
1. 首先,在发送登录请求前,将验证码加入到data字典中的"yzm"键中,而不是将全部数据都覆盖为验证码:
data["yzm"] = tmblv
2. 然后,将修改后的data作为post方法的data参数进行登录请求:
session.post(url, data=data)
3. 最后,再次发送获取首页内容的请求(即`resp_2 = session.get(view_url)`),并打印出响应的文本:
resp_2 = session.get(view_url)
print(resp_2.text)
这样应该就可以成功登录,并打印出首页的内容了。如果问题仍然存在,请检查您的账号密码和验证码是否正确,还可以进一步对请求头进行调整以模拟正常登录的请求。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]