抓取网页代码后,下一步就是从网页中提取细腻,获取信息的 方式多种多样,可以使用正则来提取,但是写起来相对于比较烦琐。这里有 许多强大的解析库,如: lxml、Beautiful Soup、pyquery等,此外还提供强大的解析方法,如 XPath 解析 和 CSS选择器解析等等,利用他们,我们可以高效便捷的从网页中提取有效的信息。
(一)lxml 的安装
lxml 是Python的一个解析库,支持 html 和 XML的解析,支持 XPath 解析方式,而且解析效率很高。
相关链接:
Windows 下的安装:
执行以下的命令安装即可
pip3 install lxml
如果没有出现任何报错 ,则表示安装成功。 如果出现报错,比如提示 libxml2库等信息,可以采用wheel 方式 安装。
Linux 下的安装:
执行以下的命令安装即可
pip3 install lxml
如果报错,可以尝试以下的解决方案
yum install -y epel-realease libxslt-devel libxml2-devel openssl-develyum groupinstall -y development tools
lxml是一个非常重要的库,后面的 Beautiful Soup 、Scrapy 框架都需要用到此库。
(二) Beautiful Soup 的安装
Beautiful Soup 是Python 的一个 HTML 或 XML的解析库,我们可以用它来方便的从网页中提取数据。他拥有强大的API和多样的解析方式。
相关链接:
- 官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/
- 中文文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/
- PyPI:https://pypi.org/project/beautifulsoup4/
安装前准备工作, Beautiful Soup 的HTML 和XML解析是依赖于 lxml库的,所以再次之前必须安装好 lxml库。
直接使用pip安装即可,命令如下:
pip3 install beautifulsoup4
目前, Beautiful Soup 的最新版本是4.x版本,之前的版本已经停止开发了。
安装完成之后的, 运行下面的代码进行验证
from bs4 import BeautifulSoupsoup = BeautifulSoup('<p>Hello</p>','lxml')print(soup.p.string)
运行结果会在终端打印出hello,证明安装成功。
注意:这里我们虽然安装的是beautifulsoup4这个包,但是引入的时候却是bs4。 这是因为这个包源代码本身的库文件夹名称就是 bs4。
(三)Pyquery的安装
Pyquery同样是一个强大的网页解析工具,他提供了和 JQuery类似的语法来解析HTML文档,支持CSS选择器。
相关链接:
- GitHub:https://github.com/gawel/pyquery
- 官方文档:https://pyquery.readthedocs.io/
- PyPI:https://pypi.org/project/pyquery/
这里直接使用pip直接安装:
pip3 install pyquery
验证安装:
import pyquery
(四)tesserocr 的安装
在爬虫过程中,会遇到各种各样的验证码,而大多数验证码还是图像验证码,我们可以直接使用OCR来识别。
OCR
OCR, 光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图像验证码来说,他们都是一些不规则的字符,这些字符确实是由字符稍加扭曲变换得到的内容。
tesserocr 是 Python的一个 OCR 是识别库,但其实是对tesseract 做的一层 Python API 封装,所以他的核心是 tesseract。因此,在安装 tesserocr 之前必须先安装 tesseract。
相关链接:
- tesserocr GitHub:https://github.com/topics/tesserocr
- 下载地址:https://digi.bib.uni-mannheim.de/tesseract/
- tesserocr PyPI:https://pypi.org/project/tesserocr/
- tesseract GitHub:https://github.com/tesseract-ocr/tesseract
- tesseract 文档:https://github.com/tesseract-ocr/tessdoc
Windows 下的安装:
我们需要进入下载页面,选择下载对应的版本即可, 文件名带有dev的为开发版本,不带dev的为稳定版本。
安装时, 可以勾 Additional Language data(download)选项来安装OCR识别支持的语言包,这样OCR就可以识别多国语言。然后一路点击 Next 按钮即可。
接下来再安装 tesserocr 即可,直接使用 pip安装。
pip3 install tesserocr pillow
Linux 下的安装:
对于Linux来说, 不同的系统已经有了不同的发行宝,直接使用命令安装即可。
apt-get install -y tesseract-ocr libtesseract-dev libleptonica-dev #Ubuntuyum install -y tesseract # Centos
我们,查看其支持的语言。
tesseract --list-langs
我们可以直接下载语言安装包,然后替换 /usr/share/tesseract/tessdata的数据。
接下来再安装 tesserocr 即可,直接使用 pip安装。
pip3 install tesserocr pillow
