在爬虫中图形验证码的解决方式有哪些?
1、 可以通过算法 以及深度学习
2 、selenium来解决
3 、打码平台(付费)
4 、tesseract(即: 光学文字识别库,免费的、开源的)
一、tesseract
1、 安装
1.1 需要把安装的路径(D:Program FilesTesseract-OCR)添加到path环境变量里
1.2 需要把训练数据添加到用户变量中:
变量:TESSDATA_PREFIX
值:D:Program FilesTesseract-OCRtessdata
如下图:
2、 python安装模块
pip install pytesseract
3 、使用
(1)在cmd中的使用:tesseract demo.jpg num
(2)在python中的使用:
import pytesseract
from PIL import Image # 图形处理库
# tesseract.exe的路径
pytesseract.pytesseract.tesseract_cmd = r'D:Program FilesTesseract-OCRtesseract.exe'
# 训练数据的路径
tessdata_dir_config = r'--tessdata-dir "D:Program FilesTesseract-OCRtessdata"'
image = Image.open('demo.jpg') #这张图片和本py文件在同一个路径下
print(pytesseract.image_to_string(image,lang='eng',config=tessdata_dir_config))
(3)和爬虫结合的案例:
from urllib import request
import pytesseract
from PIL import Image # 图形处理库
# tesseract.exe的路径
pytesseract.pytesseract.tesseract_cmd = r'D:Program FilesTesseract-OCRtesseract.exe'
# 训练数据的路径
tessdata_dir_config = r'--tessdata-dir "D:Program FilesTesseract-OCRtessdata"'
#图形验证码的url
url = 'https://passport.lagou.com/vcode/create?from=register&refresh=1513081451891'
request.urlretrieve(url,'text.png')
image = Image.open('text.png')
result = pytesseract.image_to_string(image,lang='eng',config=tessdata_dir_config)
print(result)
二、超级鹰打码平台: https://www.chaojiying.com/
1 、注册账号(用户)
2 、充值(1块钱或者扫码关注微信公众号送1000题分)
3 、创建软件id(点击创建软件id 输入名字 提交)
4 、下载实例代码:
选择python
点击下载
下载结果:
5 、使用实例代码(上述下载完成后)
打开上述py文件,做简单修改(只需要修改最后3行)
其中,图形码类型在官方网站>>价格体系中查看:
那么,我们再换一张12306的验证图片看看:
三、超级鹰打码平台在12306中的使用



