在爬虫过程中,有些网页需要登录才能获取里面的数据,在大部分的登录过程中,都会需要一个叫验证码识别,目前的网页有各种各样的验证码,有数字加字母的组合,有物品识别等等
在代码进行网页爬取过程中,如果由人为判断验证码进行,则失去了网络爬虫的意义
网站设置验证码的作用之一就是一种反爬虫措施,但是这种措施目前仍然可以用一些技术手段进行自动识别,帮助爬虫工作者顺利突破验证码
网络上进行验证码识别的平台有很多,如云打码、超级鹰,小编用的是超级鹰,虽然它需要充值,不过识别验证码的效果还是很不错的
超级鹰:http://www.chaojiying.com/about.html
进入网页之后,进行注册登录,用户必须有题分才能享受到平台的服务,大家可以充值1块钱或者绑定微信,都会获得1000个题分,识别一次10--70题分不等,对小编来说,1块钱能用好久
充值后在用户中心--软件ID--生成一个软件ID

其中生成的ID是后续要用的,KEY用不到
开发文档中,点击python,点击右侧下载按钮,将下载的文件解压缩,里面包含一个py文件,就是超级鹰破解验证码的代码,将它放入pycharm中就可以运行,下面具体讲解操作
我们看代码最后面
if __name__ == '__main__':
chaojiying = Chaojiying_Client('超级鹰用户名', '密码', '软件ID') #用户中心>>软件ID 生成一个替换 96001
im = open('需要识别图片的路径', 'rb').read() #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
print (chaojiying.PostPic(im, 验证码类型)) #1902 验证码类型 官方网站>>价格体系 3.4+版 print 后要加()
其中超级鹰用户名、密码、软件ID、图片路径、验证码类型需要自己更改,其他的代码不需要管他,其中验证码类型参考http://www.chaojiying.com/price.html
注意 下载好的最后一行代码中的print少括号 需要自己加上
运行结束后,返回一个字典
其中识别好的值,在键为pic_str中
在实际的爬虫过程中,要么用resquests抓取验证码的src路径,将其下载后传入超级鹰的图片路径,要么用seleium采取截图的方式,将浏览器的验证码图片截取下来,传入程序进行识别。当然验证码是变化的,建议使用seleium截图的方式进行,这就需要掌握seleium的操作以及截图PIL这个第三方库的基本操作
以上将识别出的值,在传入网页中需要填写的文本位置,就可以通过网页验证码这一关了
下面附上代码工作的视频,提前下载好了两个验证码进行试验
QQ录屏20210714194308