第 3 章 网页数据的解析提取

上一章我们实现了一个最基本的爬虫,但提取页面信息时使用的是正则表达式,过程比较烦琐,而且万一有地方写错了。可能会导致匹配失败,所以使用正则表达式提取页面信息多少还是有些不方便。

对于网页的节点来说,可以定义 id、class 或其他属性,而且节点之间还有层次关系,在网页中可以通过 XPath 或 CSS 选择器来定位一个或多个节点。那么,在解析页面时,利用 XPath 或 CSS 选择器提取某个节点,然后调用相应方法获取该节点的正文内容或者属性,不就可以提取我们想要的任意信息了吗?

在 Python 中,怎样实现上述操作呢?不用担心,相关的解析库非常多,其中比较强大的有 lxml、BeautifulSoup、pyquery、parsel 等。本章就来介绍这几个解析库的用法。有了它们,我们就不用再为正则表达式发愁,解析效率也会大大提高。