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

- 虽然正则速度最快,也不需要依赖,但实现起来也是比较复杂的,可读性也不高,所以在一般情况下更推荐Lxml。

本文介绍了为何选择Python的Lxml库来抓取网页内容,相比Beautiful Soup和正则表达式,Lxml速度更快且可读性较好。提供了Windows和Linux环境下安装Lxml的步骤,并提及安装cssselect库以便更方便地提取网页元素。通过cssselect,可以使用CSS选择器操作HTML标签。更多详情可参阅Lxml项目主页。
555

被折叠的 条评论
为什么被折叠?



