首页 > 其他 > 详细

scrapy的使用-Pipelines

时间:2019-12-18 00:20:44      阅读:94      评论:0      收藏:0      [点我收藏+]
#------------------简单的对item操作方式----------------------------#
import json
class QsbkPipeline(object):
    def __init__(self):
        self.fp=open(qsbk1.json,w,encoding="utf-8")
    def open_spider(self,spider):
        print(爬虫开始。。。。。)
    def process_item(self, item, spider):
        # item_json=json.dumps(dict(item),ensure_ascii=False)
        # self.fp.write(item_json+‘\n‘)

        return item
    def close_spider(self,spider):

        self.fp.close()
        print(爬虫结束。。。。。)


#------------------对item操作的一种方式(高级方式推荐方式之一)----------------------------#
from scrapy.exporters import JsonItemExporter #以二进制写入,全部完成后写入(列表形式)
class QsbkPipeline(object):
    def __init__(self):
        self.fp=open(qsbk1.json,wb)
        self.exporter = JsonItemExporter(self.fp,ensure_ascii=False,encoding=utf-8)
        self.exporter.start_exporting()
    def open_spider(self,spider):
        print(爬虫开始。。。。。)
    def process_item(self, item, spider):
        self.exporter.export_item(item) #二进制写入开始
        return item
    def close_spider(self,spider):
        self.exporter.finish_exporting() #二进制写入关闭

        self.fp.close()
        print(爬虫结束。。。。。)

#-----------------------另一种对item操作方式(高级方式推荐方式之一,强烈推介)----------------------#
from scrapy.exporters import JsonLinesItemExporter #以二进制写入,完成一个就写#入一个
class QsbkPipeline(object):
    def __init__(self):
        self.fp=open(qsbk2.json,wb)
        self.exporter = JsonLinesItemExporter(self.fp,ensure_ascii=False,encoding=utf-8)
        self.exporter.start_exporting()
    def open_spider(self,spider):
        print(爬虫开始。。。。。)
    def process_item(self, item, spider):
        self.exporter.export_item(item) #二进制写入开始
        return item
    def close_spider(self,spider):
        self.fp.close()
        print(爬虫结束。。。。。)




#注释:
#四个函数分别为 1.初始化爬虫函数(初始化前需要的功能所执行函数)
#             2.开启爬虫函数(爬虫开始函数所执行功能)
#             3.爬虫进行中执行的函数(进行中函数所执行的功能,将数据清理,去重等#写在这里)
#             4.关闭爬虫执行的函数(关闭爬虫函数所执行功能)

scrapy的使用-Pipelines

原文:https://www.cnblogs.com/superSmall/p/12057289.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!