在这一部份咱们将看看怎么存储数据。需求存储的数据有两部份,一部分是咱们已经抓取和未被抓取的网页地址;另一部不份是咱们抓取到的数据。首先想到的存储方式是使用关系数据库来存储。
在关系数据库中,表是数据库中存放关系数据的集合,一个数据库里面一般都包括多个表,要操作关系数据库,首先需求衔接到数据库,一个数据库衔接称为Connection;衔接到数据库后,需求打开游标cursor,通过Cursor执行SQL语句。
使用SQLite存储数据
SQLite是一种嵌入式数据库,它的数据库就是一个文件。python就内置了SQLite3,所以咱们不需求装置任何额外的东西。本着从最简单的下手然后逐步深入的准则,咱们先看看怎么使用SQLite存储数据,然后在看看怎么使用其他关系数据库。
在咱们的数据库中创建一张urls的表,这张表包括两个字段url和timestamp。timestamp字段记录url采集的时刻,没有采集的timestamp为空。
下面函数add_new_url()用来添加新的未采集的url数据库表中。
下面函数get_unvisited_url()将从数据库中返回一条待采集的url。
使用MySQL存储数据
这一部分我们已经安装和搭建了一台Mysql的数据库,这里就不讨论如何搭建Mysql数据库了。如果你已经学习了上一节中如何SQLite来存储数据,那么你已经学会了基本的python的数据库编程。对于理解下面的代码不会有任何问题,和SQLite版本的区别只是数据库连接的方式不一样而已。
总结
这部分我们讨论了如何让我们的URL存储到关系数据库中,作为扩展练习读者还可以用同样的方法保存抓取到的网页内容。除了关系数据库之外,我们也可以使用非关系数据来保存数据。
另外,在接下来的章节中我们将讨论如何抓取动态生成内容的网页。
领取专属 10元无门槛券
私享最新 技术干货