数据存储 mysql

数据存储 mysql

一、MySQL 同步存储

二、MySQL 异步存储

 1 from scrapy import log
 2 import pymysql
 3 import pymysql.cursors
 4 import codecs
 5 from twisted.enterprise import adbapi
 6 
 7 class MysqlTwistedPipeline(object):
 8 
 9     @classmethod
10     def from_settings(cls, settings):
11         dbargs = dict(
12             host=settings['MYSQL_HOST'],
13             db=settings['MYSQL_DBNAME'],
14             user=settings['MYSQL_USER'],
15             passwd=settings['MYSQL_PASSWD'],
16             port=settings['MYSQL_PORT'],
17             charset='utf8',
18             cursorclass=pymysql.cursors.DictCursor,
19             use_unicode=True,
20         )
21         dbpool = adbapi.ConnectionPool('pymysql', **dbargs)
22         return cls(dbpool)
23 
24 
25     def __init__(self,dbpool):
26         self.dbpool=dbpool
27 
28     #pipeline默认调用
29     def process_item(self, item, spider):
30         d=self.dbpool.runInteraction(self._conditional_insert, item, spider)#调用插入的方法
31         log.msg("-------------------连接好了-------------------")
32         d.addErrback(self._handle_error,item,spider)#调用异常处理方法
33         d.addBoth(lambda _: item)
34         return d
35 
36     def _conditional_insert(self, conn, item, spider):
37         log.msg("-------------------打印-------------------")
38 
39         conn.execute("insert into MovieInfo (poster, name, director, actor, tag_char, score, critics_num,) values(%s, %s, %s,%s,%s,%s,%s,)",
40                      (item['cover'], item['title'], item['region'], item['years'], item['types'], item['score'], item['comment_num'],))
41         log.msg("-------------------一轮循环完毕-------------------")
42     def _handle_error(self, failue, item, spider):
43         print(failue)
MySQL 异步存储

 

转载于:https://www.cnblogs.com/guozepingboke/p/10794705.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值