在企业中,利用python爬虫趴下来的数据我们通常以列表或者字典的形式存入数据库中,这里我们说一下怎样存入mysql数据库或者MongoDB数据库,那么怎样将他们存入数据库中:
- 1.列表形式的存储,类似于我们从csv文件中读取数据并存入数据库,我们存入csv的数据就是以列表形式存入的,可以参照此案例:
存入mysql数据库
#导入库
import csv
import pymysql
#我们要将上面的csv文件读取并存入数据库
# 第一步:连接到mysql数据库,根据自己的数据库更改
conn = pymysql.connect(host='localhost', user='root', password='1234', db='douban250', charset="utf8")
# 第二 步:创建游标对象
cursor = conn.cursor() # cursor当前的程序到数据之间连接管道
#读取csv文件,存入数据库要一条一条往里存,类似于我们刚从网站爬虫趴下来的数据
with open('douban250.csv','r',encoding='utf-8')as csvfile:
read=csv.reader(csvfile)
for each in list(read)[1:]:
i=tuple(each)
# 第三步:组装sql语句,严格按照mysql数据库的添加语句来添加
sql = "insert into douban250 values"+str(i)
# 第四部:执行sql语句
cursor.execute(sql)
# !!!!!!!数据提交 commit() ,不提交数据库没有信息
conn.commit()
# 第五步:存入成功,关闭所有的连接
# 关闭游标
cursor.close()
# 关闭数据库
conn.close()
- 2.字典形式的存储,通常我们利用scrapy框架趴下来的以字典形式提交的,这里我们从json文件中读取数据存入数据库,可以参照此案例:
存入MongoDB数据库
from pymongo import MongoClient
import json
#1.连接本地数据库服务
connection = MongoClient('localhost')
#2.连接本地数据库 demo。没有会创建
db = connection.demo01
#3.创建集合
emp = db.employees
#根据情况清空所有数据
emp.remove(None)
#4.打开外部文件
file = open('data.json','r',encoding="utf-8")
for each in file:
eachline = json.loads(each)
emp.insert(eachline)
file.close()
那么csv中的数据怎样转换成字典格式存入MongoDB:
#csv中提供DictReader函数将列表格式以字典格式读取出来
each = csv.DictReader(file)