zoukankan      html  css  js  c++  java
  • scrapy爬虫框架(三)

    scrapy爬虫框架(三)

    使用导出器来优化存储方式

    使用JsonItemExporter模块

    pipelines.py

    from scrapy.exporters import JsonItemExporter
    
    
    class QsbkspiderPipeline(object):
        def __init__(self):  # 初始化方法
            # 使用二进制来写入,因此“w”-->"wb"
            self.fp = open("duanzi2.json", "wb")
            self.exporter = JsonItemExporter(self.fp, ensure_ascii=False, encoding='utf-8')
            self.exporter.start_exporting()
    
        def process_item(self, item, spider):
            self.exporter.export_item(item)
            return item
    
        def open_spider(self, spider):
            print("爬虫开始了!")
    
        def close_spider(self, spider):
            self.exporter.finish_exporting()
            self.fp.close()
            print("爬虫结束了!")
    

    mark

    mark

    使用JsonLinesItemExporter模块

    区别就在json文件中,同时这种写法语法更少;

    from scrapy.exporters import JsonLinesItemExporter
    
    
    class QsbkspiderPipeline(object):
        def __init__(self):  # 初始化方法
            # 使用二进制来写入,因此“w”-->"wb"
            self.fp = open("duanzi3.json", "wb")
            self.exporter = JsonLinesItemExporter(self.fp, ensure_ascii=False, encoding='utf-8')
            # self.exporter.start_exporting()
    
        def process_item(self, item, spider):
            self.exporter.export_item(item)
            return item
    
        def open_spider(self, spider):
            print("爬虫开始了!")
    
        def close_spider(self, spider):
            # self.exporter.finish_exporting()
            self.fp.close()
            print("爬虫结束了!")
    

    mark

  • 相关阅读:
    php CI框架基础知识
    1206 多表单提交,强类型
    1205 Mvc的Razor语法
    1204 Mvc
    1117 邮件验证
    1115 模板页
    1113 Ajax
    1110 Jquary动画
    1108 Jquary
    1107 Linq高级查询
  • 原文地址:https://www.cnblogs.com/senup/p/12319290.html
Copyright © 2011-2022 走看看