目录
前言:
常规格式:
采用scrapy框架:
关于Python爬取的数据进入数据库格式几乎是固定的,按照固定的形式,笔者认为记下固定的形式,这里就没用什么困难的地方了。
"""
mysql:默认只接受来自本地ip的访问
mysql:默认只接受来自本地用户的访问
"""
from pymysql import * # 连接mysql数据库
if __name__ == '__main__':
# 连接数据库
mysql_obj = connect(host='localhost', user='root', password='123456', db='itcast', port=3306,
charset='utf8mb4')
print("数据库连接成功")
# 创建游标对象
cur_obj = mysql_obj.cursor()
# 把数据写入数据库
cur_obj.execute(
'insert into my_myisam(id,name), values (%s,%s)', (1,"name"))
# 提交操作
mysql_obj.commit()
# 断开连接
cur_obj.close()
mysql_obj.close()
以上是未采用框架类型的数据入库格式,连接数据库时,host是固定的(有的用户这里要写自己电脑的ip地址),user一般都是root,password是在安装数据库是自己设置的进入数据库的密码,db是你要连接的数据库的名字,charset是编码格式,一般情况下按照笔者这样写即可。
把数据写入数据库时,格式为: 'insert into 连接的数据库下面的具体表名(表中的参数),values(%s,%s)这里前面表中参数有多少个就写多少%s',(对应要插入的数据,这里注意要与前面表中参数对照)
其余各个地方按照上述操作完成即可
# 将数据导入数据库
import pymysql
class save_to_mysql:
def __init__(self):
# 连接数据库
self.connect = pymysql.connect(host='localhost', user='root', password='123456', db='itcast', port=3306,
charset='utf8mb4')
# 创建游标对象
self.cursor = self.connect.cursor()
def process_item(self, item, spider):
insert_sql = "insert into dangdang(src,name,price,author,intro,number,press) VALUES (%s,%s,%s,%s,%s,%s,%s)"
self.cursor.execute(insert_sql, (
item.get('src'), item.get('name'), item.get('price'), item.get('author'), item.get('intro'), item.get('number'),
item.get('press')))
self.connect.commit()
def close_spider(self, spider):
self.cursor.close()
self.connect.close()
管道模块设置如上,这里的内容和上述是一样的,只不过是用类和函数进行了封装,这里进行数据插入是要根据自己item中的字段进行插入
以下是笔者的item字段
import scrapy
class DangdangItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
# 通俗的说就是你要下载的数据都有什么
# 图片
src = scrapy.Field()
# 名字
name = scrapy.Field()
# 价格
price = scrapy.Field()
# 作者
author = scrapy.Field()
# 简介
intro = scrapy.Field()
# 评论数
number = scrapy.Field()
# 出版社
press = scrapy.Field()
将这里设置好之后不要忘记在settings中设置开启管道
格式如下,最后一行是数据入库管道开启命令
# # 开启管道
ITEM_PIPELINES = {
# 管道可以有很多个 管道是有优先级的 优先级是1——1000 值越小优先级越高
'dangdang_.pipelines.DangdangPipeline': 300,
# # DangDangDownloadPipeline
# 'dangdang_.pipelines.DangDangDownloadPipeline': 301,
# # calss Excel
# 'dangdang_.pipelines.Excel': 302,
'dangdang_.pipelines.save_to_mysql': 300
}
接下来就可以愉快的进行数据入库了
温馨提示: 将数据插入数据库是可以很好的调整数据格式,将数据转换为规整的格式,在结合FineBI就可以实现美观的可视化报表啦。
FineBI详细安装使用连接:https://blog.csdn.net/yushaoyyds/article/details/125647835?spm=1001.2014.3001.5501