Python爬虫入门,快速抓取大规模数据(第二部分)

通过第一部分的练习,我们已经有了一个可运行的爬虫。这一部分我们详细的看看如何使用BeautifulSoup从网页中提取我们需要的数据,学习的目标是能够使用BeautifulSoup从网页中提取任意的数据。

HTML文档和CSS选择器

我们知道我们抓取回来的网页是由HTML和CSS构成,HTML文档对象模型(DOM)将HTML文档表达为树结构。而提取网页特定数据实际上就是按照指定的特征匹配文档树并读取数据内容。

BeautifulSoup支持大部分的CSS选择器,在tag或BeautifulSoup对象的.select()方法中传入字符串参数,即可使用CSS选择器的语法找到tag。以上面的HTML为例,下面分别使用tag,tag+id, tag+class对网页元素定位:

爬虫实例

现在回到我们抓取豆瓣图书的例子,我们看看怎么使用BeautifulSoup从网页中提取书名,封面图片,图书简介等,代码如下。感兴趣的读者可以添加代码提取更多内容。

提取数据的关键是分析并确定网页元素的CSS选择器。幸运的是浏览器可以帮我们很大的忙,以Chrome浏览器为例,在打开的网页上对想要提取的数据点击右键,在弹出的菜单项中选择检查元素。如图所示我们可以非常方便的得到元素对应的CSS选择器。

好,现在我们把数据提取部分代码加入我们的爬虫中。再次运行程序,图书书名,图书封面,简介信息便被提取和打印出来了。

总结

这一部分里我们详细介绍了如何提取网页数据。BeautifulSoup还有许多其它的API可以访问html的内容,细节可以参考BeautifulSoup文档。

在下一部分里我们将如何存储爬虫运行数据,以及抓取到的各种数据。

(0)

相关推荐