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

  • 相关阅读:
    JS 打印实现部分打印
    window.opener和window.open
    js中!和!!的区别及用法
    SQL循环表里的数据
    简明lua教程[转]
    mysql调优技巧-profiles
    MySQL的InnoDB的幻读问题
    linux exec命令
    常用正则搜集整理
    flashget for linux安装问题解决
  • 原文地址:https://www.cnblogs.com/senup/p/12319290.html
Copyright © 2011-2022 走看看