Python3爬虫环境配置——解析库安装(附tesserocr安装方法)
抓取网页代码后,第二步就是提取信息,为了方便程序设计,这里不采用繁琐的正则提取,利用社区里强大的Python解析库,如lxml、Beautiful Soup、pyquery等。此外,还有非常强大的解析方法,如XPath解析和CSS选择器解析,可以高效便捷地提取网页信息。
一、常用库
常用的解析库参见上文列举,安装常用解析库的方式同社区其他三方库,可以使用pip、wheel、conda等方式进行安装。以pip为例,可以在终端(命令提示符)执行如下命令安装:
pip install lxml
pip install beautifulsoup4
pip install pyquery
安装后可以写一个导入包的程序进行验证是否安装成功,如针对Beautiful Soup进行验证的代码如下:
from bs4 import BeautifulSoup
soup = BeautifulSoup('<p>Hello</p>',lxml)
print(soup.p.string)
如果输出Hello证明安装成功。
lxml和Beautiful Soup都是针对HTML和xml进行解析的解析库。lxml支持XPath解析方式,解析效率高。而Beautiful Soup拥有丰富的API和多样的解析方式。而pyquery提供了和jQuery类似的语法解析HTML文档,支持CSS选择器,使用方便。
二、OCR库的安装
在爬虫过程中,不可避免地需要进行验证码验证,大多是图形验证码,可以使用OCR直接识别,常用库为tesserocr。
tesserocr是Python的一个OCR识别库,但本质上是针对tesseract的一层Python API封装,所以在安装tesserocr之前需要首先安装tesseract,下载地址为:https://digi.bib.uni-mannheim.de/tesseract/
可以看到各种版本的tesseract,如下图:
其中,名字里带dev的是开发版,下载时可以选择不带dev的稳定版。安装时注意语言包的安装,但是一般直接安装需要下载语言包,会被墙,可以从GitHub单独下载语言包,放到tessdata文件夹下,下载地址https://github.com/tesseract-ocr/tessdata
接下来,就可以安装tesserocr了。同样以pip为例,如下命令:
pip install tesserocr pillow
安装tesserocr时可能会遇到这种情况:
这是因为缺少了其运行时所需的microsoft visual c++ 14.0支持库(我在安装时就出现了这种情况,获取相关支持库关注公众号回复Error01)
上述方式有一定几率失败,而且要安装较大的软件,虽然对于我推广号有帮助,但不建议大家使用。
关于tesserocr的安装,由于我使用的是Anaconda环境,在这个环境下成功安装了。分享一下详细的安装过程。
①首先你得安装Anaconda3,可以自行百度。
②最新版本的Windows平台Anaconda3不需要创建Python环境什么的,但是据网上经验看,有些版本需要创建环境,可以使用如下命令:
安装Python3.7:
conda install -c anaconda python=3.7.3
创建Python环境:
conda create -n aspider_project python=3.7.3
activate aspider_project
deactivate
创建之后就可以安装tesserocr库了,但是国外的镜像安装比较慢,可以使用国内的镜像,如清华的镜像,使用如下命令增加镜像:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --set show_channel_urls yes
如果以后要删除的话,可以使用如下命令:
conda config --remove-key channels
之后就可以安装了:
conda install -c simonflueckiger tesserocr Pillow
conda list #查看已安装的库