知乎的验证码是倒立文字,可以用zheye这个开源项目来进行这类验证码识别

zheye (github)

这是一个开源的项目,作者通过机器学习来实现了精准的倒立文字识别。 https://github.com/996refuse/zheye
1.将压缩包解压到项目中
2.下载包
Pillow==3.4.2 -8.0
scikit-learn==0.18.1 —
tensorflow==1.0.1 —
h5py==2.6.0

numpy==1.12.1 —
Keras==2.0.1 —

  1. pip install -i https://pypi.douban.com/simple -r requirements.txt

最好挨个进行下载,能看到每一个包的安装情况,是否完整。

  1. pip install -i https://pypi.douban.com/simple Pillow==3.4.2

应用实例

  1. from zheye import zheye
  2. z = zheye()
  3. positions = z.Recognize('zhihu_image/a.gif')
  4. print(positions)

输出结果

它输出的是倒立文字在图片中的坐标,分别对应的是x,y
image.png

base64图片下载
将%0A去掉
将首部特殊标志去掉
通过base64往图片中写

  1. base64_text = str(chinese_captcha_element.get_attribute("src"))
  2. import base64
  3. code = base64_text.replace('data:image/jpg;base64,', '').replace("%0A", "")
  4. DstDir = os.getcwd() + "\\"
  5. fh = open(DstDir+"yzm_cn.jpeg", "wb")
  6. fh.write(base64.b64decode(code))
  7. fh.close()