网页数据抓取怎么写(本节书摘来自异步社区《用Python写网络爬虫》(图) )
优采云 发布时间: 2021-11-25 16:06网页数据抓取怎么写(本节书摘来自异步社区《用Python写网络爬虫》(图)
)
本节摘自异步社区《Writing Web Crawlers in Python》一书第2章2.1,作者[澳大利亚]理查德劳森(Richard Lawson),李斌译,更多章节内容可在云栖社区“异步社区”公众号查看。
第 2 章数据捕获
在上一章中,我们构建了一个爬虫,可以通过以下链接下载我们需要的网页。虽然这个例子很有趣,但它不够实用,因为爬虫在下载网页后会丢弃结果。现在,我们需要让这个爬虫从每个网页中提取一些数据,然后实现某些东西。这种方法也称为刮擦。
首先,我们将介绍一个名为 Firebug Lite 的浏览器扩展,用于检查 Web 内容。如果您有 Web 开发的一些背景,您可能已经熟悉该扩展。然后,我们将介绍三种提取网页数据的方法,分别是正则表达式、Beautiful Soup和lxml。最后,我们将比较这三种数据捕获方法。
2.1 分析页面
要了解网页的结构,可以使用查看源代码的方法。在大多数浏览器中,您可以在页面上右击,选择查看页面源代码选项来获取网页的源代码,如图2.1。
我们可以在HTML中的以下代码中找到我们感兴趣的数据。
National Flag:
/places/static/images/flags/gb.png
...
Nei*敏*感*词*ours: IE
对于浏览器解析来说,缺少空格和格式并不是什么大不了的事,但是在我们阅读的时候会造成一些困难。为了更好地理解该表,我们将使用 Firebug Lite 扩展。该扩展适用于所有浏览器,我们可以通过页面获取该扩展。如果需要,Firefox 用户可以安装完整版的 Firebug 扩展,但 Lite 版已经收录了我们在本章和第 6 章中使用的功能。
Firebug Lite安装完成后,可以在我们感兴趣的网页部分右键点击,然后在菜单中选择Inspect with Firebug Lite,如图2.2。
此时,浏览器会打开如图2.3 所示的Firebug 面板,并显示所选元素周围的HTML 层次结构。
As shown in figure 2.3, when the attribute of country area is selected, we can clearly see from the Firebug panel that this value is included in the class of w2p_fw
元素,元素是places_area__row的ID