解析库的安装
抓取网页代码之后,就是从网页中提取信息。提取方式有多种多样,可以使用正则来提取,但写起来比较繁琐。但是有很多强大得解析库,如lxml、Beautiful Soup、pyquery等。此外,还提供了非常强大得解析方法,如XPath解析和CSS选择器解析等,可以利用它们高效便捷地从网页中提取有效信息。
- lxml的安装
lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,解析效率高。
- pip安装
命令如下:
pip3 install lxml
没有报错,则安装成功。如果出现报错,可以采用wheel方式安装。 (链接:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml) 下载对应的wheel文件,找到本地安装python版本和系统对应的lxml版本,然后进入到lxml文件目录,利用pip进行安装:
pip3 install lxml-3.8.0-cp36-cp36m-win_ amd64.whl
- 安装验证
可以载python命令下验证:
$ pyhton
>>> import lxml
- Beautiiful Soup的安装
Beautiful Soup是python的一个HTML或XML的解析库,利用它可以方便地从网页中提取数据,它拥有强大的API和多种多样的解析方式。
- 准备工作
Beautiful Soup的HTML和XML解析器是依赖lxml库的,请确保lxml库已经成功安装。
from bs4 import BeautifulSoup
soup = BeautifulSoup('<p>hello</p>', 'lxml')
print(soup.p.string)
运行结果如下:hello
- pyquery的安装
pyquery是一个强大的网页解析工具。它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器,使用非常方便。
- tesserocr的安装
爬虫过程中,会遇到各种各样的验证码,而大多数验证码是图形验证码,我们需要OCR来识别。
- OCR
OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是=一些不规则的字符,这些字符有字符稍加扭曲变换得到的内容。
我们可以使用OCR技术将验证码转换为电子文本,然后爬虫将识别结果提交服务器,便可以达到自动识别验证码的过程。
tesserocr是python的一个OCR识别库。但其实对tesseract做的一层python API封装,所以它的核心是tesseract。所以在安装tesserocr之前需要先安装tesseract。
然后安装tesserocr即可,使用pip安装:pip3 install tesserocr pillow
- 安装验证
图片链接:
命令行测试,将图片下载并保存为image.png,使用tesseract命令测试:tesseract image.png result -l eng && cat result.txt
运行结果:
Tesseract Open Source OCR Engine v3.05.01 with Leptonica
Python3WebSpider
python代码测试:
import tesseroct
from PIL import image
image = lmage.open('image.png')
print(tesseroct.image_to_text(image))
运行结果: Python3WebSpider
还可以直接调用file_to_text()方法:
import tesserocr
print(tesserocr.file_to_text('image.png'))
运行结果: Python3WebSpider
|