Python爬虫数据入库

目录

前言:

常规格式:

采用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',(对应要插入的数据,这里注意要与前面表中参数对照)

其余各个地方按照上述操作完成即可

采用scrapy框架:

# 将数据导入数据库
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

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会编程的喵星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值