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

  • 相关阅读:
    写文件
    CI使用数据库
    ajxa方法
    find---查找文件或目录
    diff---比较文件不同
    ifup&&ifdown --- 激活/关闭指定的网络接口。
    ifconfig---配置和显示Linux内核中网络接口
    ssh-agent && 及 ssh-add介绍
    host---域名查询
    tracepath---追踪并显示报文到达目的主机所经过的路由信息。
  • 原文地址:https://www.cnblogs.com/senup/p/12319290.html
Copyright © 2011-2022 走看看