mongodb 持久化 mysql_scrapy数据持久化存储(MySQL、MongoDB)

1、在setting.py中定义相关变量

#定义mysql相关变量

MYSQL_HOST = '127.0.0.1'

MYSQL_USER = 'root'

MYSQL_PWD = '123456'

MYSQL_DB = 'maoyandb'

MYSQL_CHAR = 'utf8'

2、pipelines.py中新建管道类,并导入settings模块

def open_spider(self,spider):

# 爬虫开始执行1次,用于数据库连接

def process_item(self,item,spider):

# 用于处理抓取的item数据

def close_spider(self,spider):

# 爬虫结束时执行1次,用于断开数据库连接

# -*- coding: utf-8 -*-

# Define your item pipelines here

#

# Don't forget to add your pipeline to the ITEM_PIPELINES setting

# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html

class MaoyanPipeline(object):

def process_item(self, item, spider):

print(item['name'])

print(item['star'])

print(item['time'])

return item

import pymysql

from .settings import *

#定义一个MYSQL管道类

class MaoyanMysqlPipeline(object):

def open_spider(self,spider):

#爬虫程序启动时,只执行一次,一般用于建立数据库连接

self.db = pymysql.connect(

host = MYSQL_HOST,

user = MYSQL_USER,

password = MYSQL_PWD,

database = MYSQL_DB,

charset = MYSQL_CHAR

)

self.cursor = self.db.cursor()

print("我是open_spider函数")

def process_item(self, item, spider):

ins = 'insert into filmtab values(%s,%s,%s)'

film_list = [

item["name"],item["star"],item["time"]

]

self.cursor.execute(ins,film_list)

self.db.commit()

#必须写,此函数返回值会交给下一个管道处理item数据

return item

def close_spider(self,spider):

# 爬虫程序结束时,只执行一次,一般用于断开数据库连接

self.cursor.close()

self.db.close()

print("我是close_spider函数")

3、settings.py中添加此管道

ITEM_PIPELINES = {'':200}

ab573da20b2f

image.png

# 注意 :process_item() 函数中一定要 return item

必须写,此函数返回值会交给下一个管道处理item数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值