爬虫 之 数据存储

2018-12-24  本文已影响0人  煎炼

爬虫采集下来的数据我们需要将其存储起来,可以存储为文本,也可以将其存到数据库中,下面简单介绍一下存入数据库中

首先我们要有相应的模块,以mysql为例:我们需要pymysql模块,pip install pymysql

要如何引用呢,首先引入pymysql

import pymysql

然后连接数据库并获取操作游标

db = pymysql.connect("localhost","username","password","数据库名称",charset='utf8' )

#获取操作游标

cursor = db.cursor()

获取完操作游标之后,就可以执行sql语句了

先创建一个表

sql ="""

    CREATE TABLE ceshi (

    name CHAR(20) NOT NULL,

    age INT)

"""

#执行sql语句

cursor.execute(sql)

表创建完成之后向表中添加数据

sql1 ="INSERT INTO EMPLOYEE (name,age) VALUES ('laowang', 20)"

执行插入插入数据的sql语句,没有出错则正常插入,出错回滚事物

try:

    # 执行sql语句

    cursor.execute(sql1)

    # 提交到数据库执行

    db.commit()

except Exception as e:

    # 发生错误时回滚

    print("出错了",e)

    db.rollback()

最后关闭数据库连接

db.close()

mysql简单说道这里,推荐一个mysql的界面化工具SQLyog。

下面说一下mongodb,

mongodb和mysql大同小异,

pip install pymongo

from pymongo import MongoClient    #引入pymongo模块

连接mongodb

conn = MongoClient('192.168.0.113', 27017)

#连接mydb数据库,没有则自动创建

db = conn.my_mongodb

#使用test_set集合(相当于mysql中的数据表),没有则自动创建

my_test = db.test_set    #如果想要循环多个集合, my_test = db[集合名称]

然后是向mongodb中插入数据,insert和save

my_test.insert({"name":"laowang","age":34},{多条数据1},{多条数据2})

mongodb推荐一个界面化工具:Rotomongo

mongodb存储海量数据时,需要注意mongodb的存储机制了,因为mongodb在没有删除数据库的前提下(删除数据集合也是不会释放空间的),是不会释放磁盘空间的,所以对磁盘空间要把控好,如果想要释放磁盘空间,就需要进入删除数据的数据库,执行

db.repairDatabase()

这个在官方的说法是修复数据,因为mongodb的机制,删除的数据会被标记为空记录,也就是失效数据,这条命令会将空数据清掉,然后释放磁盘空间,不过需要注意磁盘(需要当前数据库占用的磁盘空间+2G),否则会出现一些意外状况,请谨慎使用。

详情请参考官方文档.

数据库简单介绍到这里

上一篇 下一篇

猜你喜欢

热点阅读