文档状态:编辑....
zh/en/滑动/点击/识图/验证[1]. 对于简单的中文、英文、数字的验证码,大部分在去除干扰线和图像二值化的处理之后(可以使用Python 3的Pillow模块结合OpenCV处理,效果很理想),通过一些训练软件,比如jTessBoxEditor,再结合Tesseract,就可以达到很好的识别效果,[作者也曾做过一次这个测试,是帮助老师爬取某网站的一个开放查询的信息,因为参数实在很多,人工点选太麻烦,所以用爬虫的方法来获取,但是该平台有验证码来反爬虫,于是我便用到了刚才提到的jTessBoxEditor和Tesseract工具,通过300张图片的处理和训练,达到了90%的识别率,最终顺利的爬取了1700多条数据。]-(自行百度如何进行图片的处理以及如何进行简单的识别训练。) [2]. 打码平台:现在也有这么一种平台,开放接口,对于用户通过接口传来的无数验证码,发放给数以万计的人,进行手动的输入,你可能也做过或者听说过这么一种兼职,这就是打码平台,当然作者也不推荐,毕竟也是要花钱的,而且验证码数量比较大的情况下,对个人来说的确不划算。 [3]. 机器学习与人工智能:这是针对类似于某铁路部门网站的图像点选验证码、某乎的中文点选验证码以及某歌的reCAPTCHA验证码可能比较适用的解决方案,学习成本有点高. [4]. selenium+chrome/phantomjs:这一种方法适用于类似与某宝某东这类多种反爬虫手段混合的情况,作者曾经做过一个作业,就是爬取某宝全球购某家店铺的全部商品信息及评论信息,当时作者采用的是API请求的方法,因此遭受了反爬虫系统的巨大冲击,只能爬取十多页。如果当时采用selenium+chrome/phantomjs的模式去爬,可能结果会更理想一些。phantomjs是上一讲没有提到的一个工具。