【最新猿人学】 验证码 - 图文点选 文字验证码识别
暗号aHR0cHM6Ly9tYXRjaC55dWFucmVueHVlLmNuL21hdGNoLzg该题为图文点选识别点击对应的文字后点击指定的页面才能获取到对应的数据首先进行抓包分析验证码请求接口一共返回了5个重要的数据所以先编写代码访问端口将image 和 验证码id保存下来接下来就是最重要的文字识别我这里是使用easyocr库进行的文字识别但是识别效率较低有时候9个字只能够识别出8个附上代码from PIL import Image import easyocr import numpy as np # 新增需要转numpy数组 # 初始化 OCR只加载中文速度快 reader easyocr.Reader([ch_sim], gpuTrue) # --------------- 改成你的图片路径 ---------------- image_path 更改为你的图片名字 img Image.open(image_path) w, h img.size # 自动切 3x3 格子 hz [] cell_w w//3 cell_h h//3 print(开始识别 9 个格子文字...\n) for row in range(3): for col in range(3): x1 col * cell_w y1 row * cell_h x2 x1 cell_w y2 y1 cell_h # 裁剪格子 cell img.crop((x1, y1, x2, y2)) # 修复PIL Image 转 numpy 数组再传给 easyocr cell_np np.array(cell) # 识别 result reader.readtext(cell_np, detail0) text result[0] if result else hz.append(text.strip()) print(hz)上面说到这个文字识别库识别效率比较低所以我使用了死循环如果识别后要点击的4个字都在识别的文字列表里面才结束循环点击坐标识别我是模拟了九个点的坐标并且使用列表来完成from random import randint as r zb[[51r(-5,5),54r(-5,5)],[140r(-5,5),50r(-5,5)],[255r(-5,5),50r(-5,5)],[54r(-5,5),158r(-5,5)],[157r(-5,5),140r(-5,5)],[270r(-5,5),140r(-5,5)],[57r(-5,5),280r(-5,5)],[157r(-5,5),253r(-5,5)],[252r(-5,5),258r(-5,5)]]之后再看验证接口参数一共需要带两个这里没有使用到任何加密这里有一个小坑接口中clicks参数中的x和y是由双引号引起来的所以访问的时候也要使用双引号可使用 str.replace(\, \) 将单引号改为双引号如果传入的是单引号会导致验证失败之后就能正确获取到数据
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2575662.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!