1.正则表达式
正则表达式有个很大的缺点是难以构造、可读性差、不易适用未来网页的变化。写一段伪代码:

2.Beautiful Soup
这是一个非常流行的python模块。安装命令如下:
pip install beautifulsoup4
使用此模块的第一步是将已下载的html内容解析为soup文档。因许多html网页格式不规范,Beautiful Soup可对其进行确定,将其调整为规范的html文件。

3.Lxml
Lxml是基于libxml2这一XML解析库的python封装。该模块使用c语言编写,解析速度比Beautiful Soup更快。
安装命令如下:
pip install lxml
pip install cssselect
如下代码,从html中获取class=country的ul标签下,li标签id=a的文本,获取li标签class=b的文本

4.三种方式的比较

通常,lxml是抓取数据最好的选择,因为该方法既快速又健壮,而正则和Beautiful Soup只在某些特定场景下用。
网友评论