为什么是Lxml
如果我想用Python获取网页中某个标签(
<div id=content>...</div>
),一般三种方式:正则、BS(Beautiful Soup)、Lxml。三种方式的优劣如何?分析见下表。
抓取方法 | 速度 | 使用难度 | 安装难度 |
---|---|---|---|
正则 | 快 | 困难 | 无(内置) |
BS | 慢 | 简单 | 简单 |
Lxml | 快 | 简单 | 一般 |
- 由于BS是由Python编写的模块,所以速度比较慢。而正则和Lxml都是用C实现的,所以速度较快。但是BS也可以将Lxml作为文本解析器,速度有一定提升。
- 经过测试,正则和Lxml的速度远比BS速度快,即使BS采用了Lxml作为解析器,速度仍然比前两者慢很多。
- 虽然正则速度最快,也不需要依赖,但实现起来也是比较复杂的,可读性也不高ÿ