声明(lianxi a15018601872)
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
前言(lianxi a15018601872)
试了一天的百度验证码训练,下载ps一个个图来转。一直在找怎么训练才可以正确。太累了把图形弄正。弄了几个小时弄了300多张,还有300-400张吸取上次教训标注完一半直接开始训练看看效果这个我个人经验。之前极验点选标注过程出出问题导致后续一直在错误中摸索。训练了5-6回。重16,32,64。最后手动调整参数修改一下陈不不大佬开源的旋转验证码训练代码。有点不懂感觉陈不不大佬的训练项目虽然不是同类型中最好的。但决定是最容易让人看懂的了诠释了然后让一个小白快速人们。虽然我没报他的课,但是还是可以从代码逻辑中看出是一个很好的it培训导师。训练过程中顺便把深圳航空的顶象给弄了。接下来说一下这两部分怎么处理尽量快点写完看 德国打西班牙。
顶象处理思路
这部分代码是以前写的,我debug看了一下canvas构造过程一点没变直接拿代码来用。
def reduction_image(_seq, _img):"""用于将图片还原@param _seq: 图片的序列号,也就是 Sequence方法生成的结果 还原数组@param _img: 背景图片@return new img"""a = 200 # 假设图片高度为200pxnp_image = np.array(_img) # 将背景图片转换为NumPy数组new_np_img = np.zeros((200, 400, 3), dtype=np.uint8) # 创建一个新的空白图片数组,这里假设宽度为400pxfor u in range(0, 32):c = _seq[u] % 32 * 12 # 计算原图片中切片的x位置xpos = u * 12 # 计算新图片中切片应该放置的x位置slice_img = np_image[0:a, c:(c + 12)] # 从原图片中切出一块n = len(slice_img[0]) # 切片的宽度new_np_img[0:a, xpos:(xpos + n)] = slice_img # 将切片放置到新图片的对应位置上return new_np_img # 返回新的图片数组
第一次请求
params = {"w": "330","h": "165","s": "50","ak": ak,"c": c,"jsv": "5.1.49","aid": f"dx-{int(time.time()*1000)}-32232197-1","wp": "1","de": "0","uid": "undefined","lf": "0","tpc": "","t": "CC999B881AF4A3DA358978FDEB4D109479F4270417255497323BF8D9CFB9BFE4CC3B1235E6B4D3AF34E0EA0AA80AC16134C88846E2A05ACE5C9D3A317FE86B6B0F36CB078A978905578DC10B63601053","cid": "97991961","_r": random.random()
}
第二次请求
data = {"ac": ac,"ak": ak,"c": c,"uid": "undefined","jsv": "5.1.49","sid": sid,"aid": f"dx-{int(time.time()*1000)}-73294134-1","x": x,"y": y,"w": "330","h": "165"
}
主要说一下ac处理。分别三步。init,recordSA , an.sendTemp({ "xpath": "/html/body/div[1]", "x": x, "y": y })处理这三个就可以了。
补环境检测了什么
自动化getAttribute return null就行了。document.body.length和document.documentElement.length,其他都是很常见的问题。
遗留问题
我记得顶象每天会动态更换文件,所以文件一换请求的false。目前有一个思路。但是没时间搞,明天把图标完再说吧。
百度验证码怎么训练
下载不不大佬的项目到本地,把训练次数弄大一点,我测了64次才可以正常开始识别。32,16识别的很乱。同时对图片自己进行处理。就可以。
顶象运行结果
百度验证码测试结果
训练次数不是很多,测试了一下至少整体是的。增加图片和训练次数应该可以解决。