美文网首页
scrapy存储到mongodb数据库中

scrapy存储到mongodb数据库中

作者: 凉水u | 来源:发表于2019-02-25 20:57 被阅读0次

在pipeline中 写入如下:

import pymongo

class DBDYMongoPipeline(object):
    collection = 'dbdys'   #表的名字
    def __init__(self, mongo_uri, mongo_db):
         self.mongo_uri = mongo_uri
         self.mongo_db = mongo_db

    @classmethod
    def from_crawler(cls, crawler):
        '''
            scrapy为我们访问settings提供了这样的一个方法,这里,
            我们需要从settings.py文件中,取得数据库的URI和数据库名称
        '''
        return cls(
            mongo_uri = crawler.settings.get('MONGO_URI'),
            mongo_db = crawler.settings.get('MONGO_DB')
        )

    def open_spider(self, spider):
        '''
        爬虫一旦开启,就会实现这个方法,连接到数据库
        '''
        self.client = pymongo.MongoClient(self.mongo_uri)
        self.db = self.client[self.mongo_db]

    def close_spider(self, spider):
        '''
        爬虫一旦关闭,就会实现这个方法,关闭数据库连接
        '''
        self.client.close()

    def process_item(self, item, spider):
        '''
            每个实现保存的类里面必须都要有这个方法,且名字固定,用来具体实现怎么保存
        '''
        if not item['title']:
            return item

        data={
            'title':item['title'],
            'star':item['star'],
            'doc':item['doc'],
            'link':item['link'],
            'intro':item['intro'],
        }
        table = self.db[self.collection]
        table.insert_one(data)
        return item

在setting文件中配置:

ITEM_PIPELINES = {

'DBDY.pipelines.DbdyPipeline': 300,

#项目文件名,管道中定义是的管道类 名称
'DBDY.pipelines.DBDYMongoPipeline':400

}
MONGO_URI = 'mongodb://localhost:27017'
MONGO_DB = "stu" #数据库名字

相关文章

  • scrapy存储到mongodb数据库中

    在pipeline中 写入如下: ITEM_PIPELINES = { 'DBDY.pipelines.DbdyP...

  • scrapy框架循环爬取今日头条热点数据

    scrapy框架爬取今日头条数据,主要实现一下几个主要功能: 数据存储到mongodb数据库 图片下载 随机切换U...

  • MongoDB

    MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库。 MongoDB存储模式 数据库存储集合,集...

  • MongoDB开发之 日期类型

    MongoDB存储时间类型数据时,都是先转换为UTC时间,然后存储到数据库中。 日期类型 Date()显示当前时间...

  • MongoDB 概念

    一个mongodb中可以建立多个数据库。MongoDB的默认数据库为"db",该数据库存储在data目录中。Mon...

  • Scrapy+MongoDB爬取豆瓣《我不是药神》短评

    框架入门类练手项目,Scrapy+MongoDB爬取豆瓣《我不是药神》短评先看看词云成果图: 数据库存储图: 项目...

  • MongoDB 基本概念

    数据库 一个mongodb中可以建立多个数据库。 MongoDB的默认数据库为"db",该数据库存储在data目录...

  • MongoDB-常规概念

    数据库 一个mongodb中可以建立多个数据库。 MongoDB的默认数据库为"db",该数据库存储在data目录...

  • Docker安装MongoDB

    MongoDB是什么? mongoDB是存储文档的非关系型数据库。 MongoDB的文档结构 集合 集合中可以包...

  • python scrapy实操

    主要介绍:1、scrapy框架简介、数据在框架内如何进行流动2、scrapy框架安装、mongodb数据库安装3、...

网友评论

      本文标题:scrapy存储到mongodb数据库中

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