当前位置: 技术文章>> Python3网络爬虫-使用数据库存储数据

文章标题:Python3网络爬虫-使用数据库存储数据
  • 文章分类: 后端
  • 29432 阅读

关系型数据库典型的数据结构是表,数据库是由二维表及其之间的联系所组成的一个数据组织。关系型数据库的优点体现在以下几个方面:

易于维护:都是使用表结构,格式一致。

使用方便:SQL语言通用,可用于复杂查询。

复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。

不过关系型数据库也存在以下几个方面的缺点:

读写性能比较差,尤其是海量数据的高效率读写。

固定的表结构,灵活度稍微欠缺。

高并发读写需求,对传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

Python作为一种主流的编程语言,提供了对关系型数据库的支持。

SQLite 3可使用sqlite3模块与Python进行集成。sqlite3模块是由Gerhard Haring编写的。该模块提供了一个与PEP 249描述的DB-API 2.0规范兼容的SQL接口。用户不需要单独安装该模块,因为Python 3.x版本默认自带了该模块。

要使用数据库,首先需要连接到数据库。调用SQLite3的connect()方法即可连接到指定数据库,其语法格式如下:

    sqlite3.connect(database [,timeout ,other optional arguments])

其中,参数database即为需要连接的目标数据库;参数timeout为指定超时设置;参数other optional arguments为其他参数设置。执行该方法将会连接到指定数据库,如果数据库不存在,就尝试创建一个。

以上代码调用connect()方法对指定数据库进行连接,并在成功连接后输出相应内容。将以上代码保存为3-13.py,执行以上代码,其结果将会如图3-13所示,并且会在当前目录下生成名为my_db.db的数据库文件。

表是构成数据库的基本单元,连接数据库之后,就需要在数据库中创建表。要创建表,首先需要调用connection对象的cursor()方法创建一个游标(cursor)对象。然后调用游标对象的execute()方法执行建表的语句,在数据库中创建表。该方法的语法格式如下:

    cursor.execute(sql [, optional parameters])

以上代码调用cursor()方法创建一个游标,然后调用execute()方法执行创建表的SQL语句,最后调用commit()方法提交建表操作。执行以上代码将会在当前my_db.db数据库中创建一个名为USER的表。

成功创建表之后,就需要向表中插入数据。仍然是调用游标对象的execute()方法执行插入数据的SQL语句,并在执行之后调用commit()方法提交这些操作,就可以实现向表中插入数据。

以上代码通过execute()方法执行SQL语句向表中插入数据。

执行遍历表中所有信息的语句即可实现浏览表中记录的功能,同样是执行execute()方法,执行相应的SQL语句即可。

    import sqlite3 as sql
    con=sql.connect("my_db.db")
    c=con.cursor()
    rows=c.execute("SELECT * FROM USER")
    for r in rows:
        print("ID = ", r[0])
        print("NAME = ", r[1])
        print("ADDRESS = ", r[2])
        print("SALARY = ", r[3], "\n")
    con.close()

以上代码通过execute()方法执行遍历所有记录的SQL语句以执行浏览数据的操作,然后通过for遍历所有结果集,并将内容输出。

---------------------------------------------------------------------------------

学习更多专业Python知识,点此查看:

《剑指Python-上》  《剑指Python-下》

---------------------------------------------------------------------------------


推荐文章