python网页登录验证码不显示_Python3 模拟登录一个网站 验证码为什么总是错误?...

问题描述

Python3 模拟登录一个网站 验证码总是错误

问题出现的环境背景及自己尝试过哪些方法

先请求了获取验证码的接口,再POST提交登录表单,但是验证码一直错误,百度无果,如果有大神愿意指点一二非常感谢!

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

# -*- coding: utf-8 -*-

from urllib import parse

import requests

# python2 和 python3的兼容代码

try:

# python2 中

import cookielib

print(f"user cookielib in python2.")

except:

# python3 中

import http.cookiejar as cookielib

print(f"user cookielib in python3.")

# session代表某一次连接

mSession = requests.session()

# 因为原始的session.cookies 没有save()方法,所以需要用到cookielib中的方法LWPCookieJar,这个类实例化的cookie对象,就可以直接调用save方法。

mSession.cookies = cookielib.LWPCookieJar(filename = "mafengwoCookies.txt")

login_url='https://dianpos-agent.91dbq.com/agent/operatorLogin.action'

#登录后才能访问的网页

url = 'https://dianpos-agent.91dbq.com/agent/main.action'

randomCode="-0"

userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"

header = {

"origin": "https://dianpos-agent.91dbq.com",

"Referer": "https://dianpos-agent.91dbq.com/agent/operatorLogout.action",

'User-Agent': userAgent,

}

def login(account, password):

# 模拟登录

print ("开始模拟登录")

print(mSession.cookies)

codeurl = 'https://dianpos-agent.91dbq.com/agent/generateRandomCode.action'

valcode = mSession.get(codeurl)

print(mSession.cookies)

f = open('valcode.png', 'wb')

# 将response的二进制内容写入到文件中

f.write(valcode.content)

# 关闭文件流对象

f.close()

code = input('请输入验证码:')

randomCode=str(code)

postData = {

"username": account,

"password": password,

"randomCode": randomCode

}

print(mSession.cookies)

print(postData)

postData=parse.urlencode(postData).encode('utf-8')

# 使用session直接post请求

responseRes = mSession.post(login_url, data=postData, headers=header)

print(mSession.cookies)

# 无论是否登录成功,状态码一般都是 statusCode = 200

print(f"statusCode = {responseRes.status_code}")

print(f"text = {responseRes.text}")

# 登录成功之后,将cookie保存在本地文件中

mSession.cookies.save()

if __name__ == '__main__':

login("xxx", "xxx")

你期待的结果是什么?实际看到的错误信息又是什么?

希望能正确获取到验证码,提交并成功登录进去!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值