1.2.2 Python中实现网页解析

所谓网页解析器,简单地说就是用来解析HTML网页的工具,它主要用于从HTML网页信息中提取需要的、有价值的数据和链接。在Python中解析网页主要用到图1-4所示的3种工具。

0

图1-4 Python解析网页常用的3种工具

一是正则表达式。正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串,将匹配的子串替换或者从某个串中取出符合某个条件的子串等。正则表达式的优点是基本能用正则表达式来提取想要的所有信息,效率比较高,但缺点也很明显——正则表达式不是很直观,写起来比较复杂。

二是Lxml库。这个库使用的是XPath语法,同样是效率比较高的解析库。XPath是一门在XML文档中查找信息的语言。XPath可用来在XML文档中对元素和属性进行遍历。XPath比较直观易懂,配合Chrome浏览器或Firefox浏览器,写起来非常简单,它的代码速度运行快且健壮,一般来说是解析数据的最佳选择,Lxml是本书中解析网页的主力工具。

三是Beautiful Soup。Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库。它能够通过我们喜欢的转换器实现惯用的文档导航、查找。Beautiful Soup编写效率高,能帮程序员节省数小时甚至数天的工作时间。Beautiful Soup比较简单易学,但相比Lxml和正则表达式,解析速度慢很多。

总结起来,无论正则表达式、Beautiful Soup库还是Lxml库,都能满足我们解析网页的需求,但Lxml使用的XPath语法简单易学、解析速度快,是本书推荐读者使用的网页解析工具。