首页 > 数据库技术 > 详细

scrapy连接MongoDB

时间:2018-05-24 13:44:58      阅读:614      评论:0      收藏:0      [点我收藏+]

Scrapy中连接MongoDB所需要做的工作如下:

1.settings中需要设置的部分:

# 启动管道组件
ITEM_PIPELINES = {
    QianChengWuYu.mongoDBPiplelines.MongoDBPipline: 300,
}
# MonDB的连接参数
MONGODB_URI = mongodb://localhost:27017
MONGODB_DB_NAME = scrapy_db

     (1)其中ITEM_PIPELINES中设置的是QianChengWuyu项目中的管道文件mongoDBPiplelines中的MongoDBPipline类,优先级是300

     (2)其中MONGODB_URI为指定登录的IP 这里是localhost,端口为27017,MONGODB_DB_NAME为MongoDB中数据库名称

 

2.scrapy中piplines文件如下:

 

"""
该类用于mongdb数据库的数据插入
"""

from pymongo import MongoClient
from scrapy import Item

class MongoDBPipline(object):
    def open_spider(self, spider):
        """
        该方法用于连接数据库
        """
        db_uri = spider.settings.get(MONGODB_URI, mongodb://localhost:27017)
        db_name = spider.settings.get(MONGODB_DB_NAME, scrapy_default)

        self.db_client = MongoClient(mongodb://localhost:27017)
        self.db = self.db_client[db_name]

    def close_spider(self, spider):
        """
        该方法用于关闭数据库
        """
        self.db_client.close()

    def process_item(self, item, spider):
        """
        该方法用于插入数据
        """
        self.insert_db(item)

        return item

    def insert_db(self, item):
        if isinstance(item, Item):
            item = dict(item)     # 将一项数据转化为字典格式

        self.db.books.insert_one(item)  # 向集合books中插入数据

 

scrapy连接MongoDB

原文:https://www.cnblogs.com/llssx/p/9082408.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!