美文网首页
Scrapy——数据持久化存储

Scrapy——数据持久化存储

作者: Chris的算法小记 | 来源:发表于2018-02-02 17:20 被阅读295次

本文首发于我的博客:gongyanli.com

前言:本文主要讲解Scrapy的数据持久化,主要包括存储到数据库、json文件以及内置数据存储

持久化存储——JSON

pipelins.py

`import json
 from scrapy.exceptions import DropItem
 class myPipeline(object):
    def __init__(self):
        self.file=open('test.json','wb')
    
    def process_item(self,item,spider):
        if item['title']:
            line=json.dumps(dict(item))+'\n'
            self.file.write(line)
            return item
        else:
            raise DropItem("Missing title in %s" % item)`

持久化存储——MongoDB数据库

`class myPipeline(object):
 def __init__(self):
    self.client = pymongo.MongoClient(host=settings['MONGO_HOST'], port=settings['MONGO_PORT'])
    self.db = self.client[settings['MONGO_DB']]
    # self.coll = self.db[settings['MONGO_COLL2']]
    self.chinacwa = self.db['chinacwa']
    self.iot = self.db['iot']
    self.ny135 = self.db['ny135']
    self.productprice = self.db['productprice']
    self.allproductprice = self.db['allproductprice']

 def process_item(self, item, spider):
    if isinstance(item, ChinacwaItem):
        try:
            if item['article_title']:
                item = dict(item)
                self.chinacwa.insert(item)
                print("插入成功")
                return item
        except Exception as e:
            spider.logger.exceptionn("")`

持久化存储——内置数据存储

settings

1.JSON
> FEED_FORMAT:json
> 所用的内置输出类:JsonItemExporter

2.JSON lines
> FEED_FORMAT:jsonlines
> 所用的内置输出类:JsonLinesItemExporter

3.CSV
> FEED_FORMAT:csv
> 所用的内置输出类:CsvItemExporter

4.XML
> FEED_FORMAT:xml
> 所用的内置输出类:XmlItemExporter

5.Pickle
> FEED_FORMAT:pickle
> 所用的内置输出类:PickleItemExporter

6.Marshal
> FEED_FORMAT:marshal
> 所用的内置输出类:MarshalItemExporter

> 使用方法:
$ scrapy crawl mySpider -o test.csv

相关文章

  • Scrapy——数据持久化存储

    本文首发于我的博客:gongyanli.com 前言:本文主要讲解Scrapy的数据持久化,主要包括存储到数据库、...

  • iOS数据持久化

    Title: iOS数据持久化 ##数据持久化概念 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型...

  • reactnative 数据持久化(一)

    rn 数据持久化 数据持久化 data 》 手机存储空间 rn rn中比较常用的数据持久化存储方式有两种: Asy...

  • iOS数据存储

    iOS数据存储 持久化存储 概述: 持久化存储——将数据保存在硬盘里,当应用程序重启后可以访问到之前存储的数据。是...

  • iOS 开发技术选型之数据库:SQLite vs. Core D

    持久化方案 在 iOS 开发中,数据持久化存储是一个很常见的需求。所谓持久化存储,就是将数据存到硬盘,使得应用重启...

  • HDFS内存存储 LAZY_PERSIST

    hdfs内存存储的策略是异构持久化(LAZY_PERSIST),在内存存储新数据的同时,持久化先前存储的数据,新的...

  • Python Scrapy持久化存储

    基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以...

  • 2019-01-28

    回顾pymongo() /数据持久化存储

  • 360插件化方案RePlugin学习笔记-数据持久化

    数据持久化有文件存储、SharedPreferences、数据库存储、ContentProvider、网络存储几种...

  • GeekBand iOS开发高级进阶学习笔记(第四周)

    简易数据存储 数据持久化分为本体持久化和云端持久化本体持久化可以存在本地文件或数据库。云端可以存在iCloud,存...

网友评论

      本文标题:Scrapy——数据持久化存储

      本文链接:https://www.haomeiwen.com/subject/lrmezxtx.html