zoukankan      html  css  js  c++  java
  • 数据存储 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 异步存储
  • 相关阅读:
    Flask 路由映射对于双斜线的处理 //a//b
    python中的导入如何使用,以及.和..相对导入的使用
    tornado 启动WSGI应用(Flask)使用多线程将同步代码变成异步
    flask的请求处理流程和异常处理流程
    pyengine介绍及使用
    __import__
    如何为自己的pip包打造可以执行的系统命令
    JS进阶之原型
    JS基础之对象
    CSS之深入探究Position
  • 原文地址:https://www.cnblogs.com/guozepingboke/p/10794705.html
Copyright © 2011-2022 走看看