解决知乎倒立验证码识别

五迷三道 提交于 2020-02-27 00:23:13

在这里插入图片描述

众所周知,知乎对反爬的措施位列全网第一梯队。我在爬取知乎的过程中也是遇到了倒立验证码的问题。

解决的办法是开源github项目:zheye

首先安装项目依赖包。

Keras==2.0.1
Pillow==3.4.2
#jupyter==1.0.0
#matplotlib==1.5.3
numpy==1.12.1
scikit-learn==0.18.1
tensorflow==1.0.1
h5py==2.6.0

经过我的尝试,这里列出的包除了tensorflow,其他全部安装最新版本即可。需要注意的是tensorflow的安装。
之前的tensorflow我都是在mac上使用的,没想到这次在windows上安装tensorflow给我造成了很大麻烦。现将我总结的tensorflow+numpy+mkl+protobuf整理如下(tensorflow依赖于后面三个包,安装过程要十分注意这四个包的版本)

1.使用清华镜像安装tensorflow1.2.1
经过我的尝试,tensorflow2似乎无法成功运行zheye,我在tensorflow1.2.1版本下成功运行,故推荐大家使用1.2.1及以下版本。
注意:

  1. 这里我是在anaconda虚拟环境下安装的,故加了python -m
  2. 如果之前安装过了有问题或版本过高的tensorflow,请先删除之前的版本python -m pip uninstall tensorflow
  3. 我的python环境是3.6,请尽量不要使用3.6以上的版本。如果大家的Python版本不是3.6,可以在清华大学开源软件镜像站查找对应的版本进行下载。(比如python3.5应该选择tensorflow-1.2.1-cp35-cp35m-win_amd64.whl
python -m pip install  https://mirrors.tuna.tsinghua.edu.cn/tensorflow/windows/cpu/tensorflow-1.2.1-cp36-cp36m-win_amd64.whl

2.安装numpy+mkl及protobuf
在网站Unofficial Windows Binaries for Python Extension Packages中明确指出,tensorflow版本依赖于numpy+mkl及protobuf。
在这里插入图片描述
经过我的实验,在该网站下载对应python版本的numpy+mkl及protobuf即可。
如python版本是3.6,即下载numpy-1.16.2+mkl-cp36-cp36m-win_amd64.whlprotobuf-3.9.2-cp36-cp36m-win_amd64.whl即可。
(安装之前,最好先删除之前版本的numpy:pip uninstall numpy

cmd进入安装包目录,进行安装即可。

python -m pip install .\numpy-1.16.2+mkl-cp36-cp36m-win_amd64.whl
python -m pip install .\protobuf-3.9.2-cp36-cp36m-win_amd64.whl

安装结束后,可以用zheye内置的图片试验一下。输出的内容即为倒立文字坐标。
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!