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

  • 相关阅读:
    串的模式匹配问题
    游戏手柄directinput编程
    Hibernate的generator属性的意义
    MySQL——基础入门
    IEbug——li标签之间的空隙
    struts2 jar包详解
    hibernate自动建库(MySQL)
    hibernate参数一览表
    js中的逻辑运算符
    hibernate的离线关联(多级)查询
  • 原文地址:https://www.cnblogs.com/senup/p/12319290.html
Copyright © 2011-2022 走看看