异步保存数据到mysql或mssql 学习笔记

 

from twisted.enterprise import adbapi
class NewtqPipeline:
    #def process_item(self, item, spider):
        #print(item['city'],item['day'],item['gw'],item['dw'],item['tq'])#以上两行为直接打印出啦
    def __init__(self,mssql_config):
        self.adbpool = adbapi.ConnectionPool(
            mssql_config['DRIVER'],#易错
            server = mssql_config['SERVER'],
            user = mssql_config['USER'],
            password = mssql_config['PASSWORD'],
            database = mssql_config['DATABASE'],
            port = mssql_config['PORT'],
            charset = 'utf8'
        )
    @classmethod
    def from_crawler(cls,crawler):
        mssql_config = crawler.settings['MSSQL_CONFIG']
        return cls(mssql_config)#易错哦
    def process_item(self, item, spider):
        result = self.adbpool.runInteraction(self.insert_parse,item)
        result.addErrback(self.insert_error)
        return item

    def insert_parse(self,cursor,item):
        sql = "insert into tianqi(rq,tq,tem,dw,city) values(%s,%s,%s,%s,%s)"
        args = (item['day'], item['tq'], item['gw'], item['dw'], item['city'])
        cursor.execute(sql,args)

    def insert_error(self, failure):
        print("--" * 30)
        print(failure)
    def spider_close(self, spider):
        self.adbpool.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值