pipeline php代码,分享pipeline存储的实例代码

在spider中最后一个函数返回item时会scrapy会调用pipeline里面的process_item(self, item, spider):

函数并传入item,spider等参数

在这里可以将数据进行持久化储存

我的piple代码

# -*- coding: utf-8 -*-# See: http://doc.scrapy.org/en/latest/topics/item-pipeline.htmlimport MySQLdb

import MySQLdb.cursorsfrom twisted.enterprise import adbapiclass MyPipeline(object): ##这里的函数名于setting中的对应

def __init__(self, dbpool):

self.dbpool = dbpool

@classmethod    ##得到数据库的连接

def from_settings(cls, settings):

dbargs = dict(

host = settings['MYSQL_HOST'],

db = settings['MYSQL_DBNAME'],

port = settings['MYSQL_PORT'],

user = settings['MYSQL_USER'],

passwd = settings['MYSQL_PASSWD'],

charset = 'utf8',

cursorclass = MySQLdb.cursors.DictCursor,

use_unicode = True,

)

dbpool = adbapi.ConnectionPool('MySQLdb', **dbargs)return cls(dbpool)

def process_item(self, item, spider): ##这个函数会在spider返回时调用

d = self.dbpool.runInteraction(self._do_upinsert, item, spider)return item

def _do_upinsert(self, conn, item, spider):

valid = Truefor data in item:if not data:

valid = Falseif valid:         ##执行sql

result = conn.execute(‘sql’) if result:

print 'added a record'else:

print 'failed insert into table'

代码git地址:过几天会上传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值