python识别验证码

马尚
• 阅读 253

导入所需模块和库: 导入了用于发送HTTP请求、处理正则表达式、Base64编码等功能的Python模块。 python

import requests import time import json import re import base64 定义函数解析Cookie字符串: 定义了一个函数 parseCookiestr,用于解析Cookie字符串并返回Cookie字典。 python

def parseCookiestr(cookie_str): """解析cookie""" cookielist = [] for item in cookie_str.split(';'): try: cookie={} itemname=item.split('=')[0] iremvalue=item.split('=')[1] cookie['name']=itemname cookie['value']=urllib.parse.unquote(iremvalue) cookielist.append(cookie) except: pass return cookielist 定义函数调用打码API识别验证码: 定义了一个函数 dama_api,用于调用第三方打码接口识别验证码图片,并返回识别结果。 python

def dama_api(img_b64): token = '打码token' # 打码接口非常便宜,有需要请联系 v:466867714 api = f'http://api.h3blog.com/yzm_api/xuanzhuan/{token}/b64' result = requests.post(api,data={"img":img_b64}).text print('打码返回数据:', result) result = json.loads(result) return result['data'] 定义类BaiduAiqichaRotate并初始化: 定义了一个类 BaiduAiqichaRotate,包含了获取验证码图片和验证的相关方法,以及初始化函数。在初始化函数中设置了请求头和Cookie,并创建了一个会话 session。 python Copy code class BaiduAiqichaRotate: def init(self): self.session = requests.session() self.headers = { # 设置请求头 } cookie = requests.cookies.RequestsCookieJar() cookies = '百度cookie' cookielist = parseCookiestr(cookies) for item in cookielist: cookie.set(item['name'], item['value']) self.session.cookies.update(cookie) 获取图片请求数据: 定义了一个方法 get_image_request_data,用于发送请求获取需要获取图片的参数,并解析响应,提取关键参数。 python

def get_image_request_data(self): # 发送请求获取需要获取图片的参数 # 解析响应,提取关键参数 # 返回关键参数字典 获取图片并识别验证码: 定义了一个方法 get_img,用于构造请求获取验证码图片和相关参数,并调用打码API识别验证码图片。 python Copy code def get_img(self, item): # 构造请求,获取验证码图片和相关参数 # 下载验证码图片并保存 # 返回验证码图片路径和相关参数字典 构造轨迹和验证参数: 定义了一个方法 verify_data,用于根据获取的验证码旋转角度和其他参数,构造轨迹和验证参数,然后提交验证请求。

def verify_data(self, item): # 构造轨迹和验证参数 # 提交验证请求 # 返回验证结果 主程序入口,执行整个流程: 在主程序中实例化类 BaiduAiqichaRotate,调用各个方法执行整个流程。 python

if name == 'main': bs = BaiduAiqichaRotate() item = bs.get_image_request_data() item_img = bs.get_img(item) with open('img.png',mode='rb') as f : content = f.read() base64_data = base64.b64encode(content) angle = dama_api(base64_data) item_img['angle'] = angle ret_data = bs.verify_data(item_img) if 1 == ret_data['data']['op']: print("验证通过") 更多内容联系q1436423940

点赞
收藏
评论区
推荐文章
Souleigh ✨ Souleigh ✨
4年前
python的requests模块的使用
前言:在web后台开发过程中,会遇到需要向第三方发送http请求的场景,python中的requests库可以很好的满足这一要求,这里简要记录一下requests模块的使用!说明:这里主要记录一下requests模块的如下几点:1.requests模块的安装2.requests模块发送get请求3.requests模块
Stella981 Stella981
3年前
Python JSON
JSON函数使用JSON函数需要导入json库:importjson。函数描述json.dumps将Python对象编码成JSON字符串json.loads将已编码的JSON字符串解码为Python对象json.dumpsjson.dumps用于将
Stella981 Stella981
3年前
Python标准库笔记(8) — pprint模块
struct模块提供了用于在字节字符串和Python原生数据类型之间转换函数,比如数字和字符串。  该模块作用是完成Python数值和C语言结构体的Python字符串形式间的转换。这可以用于处理存储在文件中或从网络连接中存储的二进制数据,以及其他数据源。1\.模块函数和Struct类  它除了提供一个Struct类之外,还
Stella981 Stella981
3年前
Node
node.js应用程序由如下三部分组成1导入所需模块:使用require指令来加载node.js模块2创建服务器:服务器可以监听客户端请求,类似于apache、nginx等3接收请求与响应请求:接收客户端/浏览器发送过来的请求,将处理得到的数据返回如下是第一个例子//步骤1:导入所需模块//这里我们使用re
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
3年前
Python实现王者荣耀小助手(一)
简单来说网络爬虫,是指抓取万维网信息的程序或者脚本,Python在网络爬虫有很大优势,今天我们用Python实现获取王者荣耀相关数据,做一个小助手:前期准备,环境搭建:Python2.7sys模块提供了许多函数和变量来处理Python运行时环境的不同部分;urllib模块提供了一系列用于操作URL的功能,爬虫所需要的功能,基本上在urll
小万哥 小万哥
1年前
Python JSON 使用指南:解析和转换数据
JSON是一种用于存储和交换数据的语法。JSON是文本,使用JavaScript对象表示法编写。Python中的JSONPython有一个内置的json包,可用于处理JSON数据。示例:导入json模块:pythonimportjson解析JSON从JSO
小万哥 小万哥
1年前
Python 正则表达式(RegEx)指南
正则表达式(RegEx)是一系列字符,形成了一个搜索模式。RegEx可用于检查字符串是否包含指定的搜索模式。RegEx模块Python中有一个内置的包叫做re,它可以用于处理正则表达式。导入re模块:pythonimportrePython中的RegEx,
马尚 马尚
8个月前
使用Python和OpenCV识别英文字符验证码
在这个项目中,我们将展示如何使用Python和OpenCV库来识别英文字符验证码。英文字符验证码通常包含大小写字母和数字字符,我们可以利用图像处理和机器学习技术来识别这些字符。首先,我们需要导入所需的库:pythonimportcv2importnumpy
马尚 马尚
8个月前
用Python和机器学习识别英文数字验证码
在本项目中,我们将展示如何使用Python和机器学习技术来识别英文数字验证码。英文数字验证码通常包含了一系列随机生成的字母和数字,我们将利用机器学习模型来训练识别这些验证码。首先,我们需要导入所需的库:pythonimportosimportnumpyas