0x00 写在前面
爬取数据,自动化的验证码验证是绕不开的,当然,验证码的自动识别其实都是调用其他api,在这里把这几天学习遇到过的验证码识别总结一下
0x01 验证码src里有图片的base64加密字符串
话不多说先上图
如图,这里的src获得的是经base64加密后的图片字符串,如下
src="https://img-blog.csdnimg.cn/2022010707433569853.png"
其中,在base64,后的是加密的字符串,我们把它解密就可以得到
会有很多乱码不过不影响,我们可以看出这其实就是png的文件格式的数据,也就代表我们刚才那张图片,我们可以用python自带的b64解密并将数据写入png格式的文件中,就能得到我们想要的验证码,接着再把验证码文件上传到识别验证码的api接口就行了,当然,也有的api可以直接接受base64加密后的图片字符串,比如超级鹰
只要提供了相关数据的接口,我们也就可以写出提交base64的方法函数
def PostBase64(self, b64, codetype):
"""
b64: 图片文件base64字符串
codetype: 题目类型 参考 http://www.chaojiying.com/price.html
"""
params = {
'codetype': codetype,
'file_base64': b64
}
params.update(self.base_params)
r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, headers