Teilen Sie den in der Pipeline gespeicherten Beispielcode

PHP中文网
Freigeben: 2017-06-20 14:39:15
Original
1499 Leute haben es durchsucht

Wenn die letzte Funktion im Spider das Element zurückgibt, ruft Scrapy

process_item(self, item, spider):
函数并传入item,spider等参数
在这里可以将数据进行持久化储存
我的piple代码
Nach dem Login kopieren
# -*- 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'
Nach dem Login kopieren

代码git地址:过几天会上传
Nach dem Login kopieren
in der Pipeline auf

Das obige ist der detaillierte Inhalt vonTeilen Sie den in der Pipeline gespeicherten Beispielcode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage