tengke 发表于 2024-3-21 18:08:57

python登陆问题

import requests
import 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)# 输出请求到的页面内容
我最后打印的内容还是登陆网站的源代码内容 并不是首页内容 这个是为什么呢并且我的账号密码是正确的验证码不知道是否一致

FishC 发表于 2024-3-21 18:08:58

从您提供的代码来看,问题可能出现在验证码的处理上。请尝试以下修改:

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]
查看完整版本: python登陆问题