人海茫茫
相识真好

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

如果没有读过前两部份的读者,建议先看前两部份:

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

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

在这一部份我们将看看如何存储数据。需要存储的数据有两部份,一部分是我们已经抓取和未被抓取的网页地址;另一部不份是我们抓取到的数据。首先想到的存储方式是使用关系数据库来存储。

在关系数据库中,表是数据库中存放关系数据的集合,一个数据库里面通常都包含多个表,要操作关系数据库,首先需要连接到数据库,一个数据库连接称为Connection;连接到数据库后,需要打开游标cursor,通过Cursor执行SQL语句。

使用SQLite存储数据

SQLite是一种嵌入式数据库,它的数据库就是一个文件。python就内置了SQLite3,所以我们不需要安装任何额外的东西。本着从最简单的入手然后逐步深入的原则,我们先看看如何使用SQLite存储数据,然后在看看如何使用其他关系数据库。

在我们的数据库中创建一张urls的表,这张表包含两个字段url和timestamp。timestamp字段记录url采集的时间,没有采集的timestamp为空。

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

下面函数add_new_url()用来添加新的未采集的url数据库表中。

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

下面函数get_unvisited_url()将从数据库中返回一条待采集的url。

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

使用MySQL存储数据

这一部分我们已经安装和搭建了一台Mysql的数据库,这里就不讨论如何搭建Mysql数据库了。如果你已经学习了上一节中如何SQLite来存储数据,那么你已经学会了基本的python的数据库编程。对于理解下面的代码不会有任何问题,和SQLite版本的区别只是数据库连接的方式不一样而已。

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

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

总结

这部分我们讨论了如何让我们的URL存储到关系数据库中,作为扩展练习读者还可以用同样的方法保存抓取到的网页内容。除了关系数据库之外,我们也可以使用非关系数据来保存数据。

另外,在接下来的章节中我们将讨论如何抓取动态生成内容的网页。

赞(0) 打赏
未经允许不得转载:老康的学习空间 » Python爬虫入门,快速抓取大规模数据(第三部分)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏