鱼C论坛

 找回密码
 立即注册
查看: 203|回复: 1

[已解决]python登陆问题

[复制链接]
发表于 2024-3-21 18:08:57 | 显示全部楼层 |阅读模式
5鱼币
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)  # 输出请求到的页面内容
我最后打印的内容还是登陆网站的源代码内容 并不是首页内容 这个是为什么呢  并且我的账号密码是正确的  验证码不知道是否一致
最佳答案
2024-3-21 18:08:58
从您提供的代码来看,问题可能出现在验证码的处理上。请尝试以下修改:

1. 首先,在发送登录请求前,将验证码加入到data字典中的"yzm"键中,而不是将全部数据都覆盖为验证码:
  1. data["yzm"] = tmblv
复制代码


2. 然后,将修改后的data作为post方法的data参数进行登录请求:
  1. session.post(url, data=data)
复制代码


3. 最后,再次发送获取首页内容的请求(即`resp_2 = session.get(view_url)`),并打印出响应的文本:
  1. resp_2 = session.get(view_url)
  2. print(resp_2.text)
复制代码


这样应该就可以成功登录,并打印出首页的内容了。如果问题仍然存在,请检查您的账号密码和验证码是否正确,还可以进一步对请求头进行调整以模拟正常登录的请求。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

最佳答案

查看完整内容

从您提供的代码来看,问题可能出现在验证码的处理上。请尝试以下修改: 1. 首先,在发送登录请求前,将验证码加入到data字典中的"yzm"键中,而不是将全部数据都覆盖为验证码: 2. 然后,将修改后的data作为post方法的data参数进行登录请求: 3. 最后,再次发送获取首页内容的请求(即`resp_2 = session.get(view_url)`),并打印出响应的文本: 这样应该就可以成功登录,并打印出首页的内容了。如果问题仍然存在 ...

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-21 18:08:58 | 显示全部楼层    本楼为最佳答案   
从您提供的代码来看,问题可能出现在验证码的处理上。请尝试以下修改:

1. 首先,在发送登录请求前,将验证码加入到data字典中的"yzm"键中,而不是将全部数据都覆盖为验证码:
  1. data["yzm"] = tmblv
复制代码


2. 然后,将修改后的data作为post方法的data参数进行登录请求:
  1. session.post(url, data=data)
复制代码


3. 最后,再次发送获取首页内容的请求(即`resp_2 = session.get(view_url)`),并打印出响应的文本:
  1. resp_2 = session.get(view_url)
  2. print(resp_2.text)
复制代码


这样应该就可以成功登录,并打印出首页的内容了。如果问题仍然存在,请检查您的账号密码和验证码是否正确,还可以进一步对请求头进行调整以模拟正常登录的请求。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 17:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表