scrapy连接MongoDB

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中插入数据

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

时间: 2025-01-17 21:57:52

scrapy连接MongoDB的相关文章

远程连接mongodb时,27017端口连接不上的解决办法

一.背景描述: 我在linux  RED7上安装了mongodb,并没有修改mongodb的配置文件.然后通过另外一台电脑用pymongo连接mongodb时,报错:timeout. ping IP 是成功的. telnet IP 27017 的时候,提示:27017端口连接不上. 二.解决过程: 各种百度,远程连接mongodb失败,网上资料显示原因有两个: 1.mongodb的配置文件中的bind_ip 默认为127.0.0.1,默认只有本机可以连接.  此时,需要将bind_ip配置为0.

python连接mongodb并操作

安装python连接mongodb的库文件pymongo pip install pymongo python连接mongodb程序 import pymongo conn = pymongo.MongoClient("ip",端口) db = conn.admin #连接库 db.authenticate("账号","密码") #用户认证 db=conn.jwh db.test.insert({'id':1,'name':'kaka','sex

nodejs:注册登录session出错以及连接Mongodb数据库时Error connecting to database解决方案

(1)nodejs:注册登录session出错 解决办法: 在app.js 中将var MongoStore =  require(connect-mongo')改为var MongoStore =  require(connect-mongo')(express) 即可: (2)连接Mongodb数据库时Error connecting to database解决方案 这种情况下是自己的mongodb数据库没有装好 解决办法: a.在官网上下载安装数据库 b.在mongodb文件夹里面新建文件

使用mongo-java-driver-3.0.2连接MongoDB数据库

这里使用的mongodb的java驱动版本是:3.0.2,文件名mongo-java-driver-3.0.2.jar下载网址(也可以下载其它版本):http://central.maven.org/maven2/org/mongodb/mongo-java-driver/ 也可以查看相关的mongodb的api:http://api.mongodb.com/java/current/index.html package utils; import java.net.UnknownHostExc

java连接mongodb源码解读

用mongdb也大半年了,一直是业务上的逻辑实现了就ok.然而这样并不能进步--因此今天查了查java连接mongodb驱动的源码,搜到的各种信息整合一下,方便以后深入的使用. 先贴连接数据库代码  List<ServerAddress> replicaSet = new          ArrayList<ServerAddress>();          replicaSet.add(new ServerAddress("127.0.0.1", 2701

node连接mongoDB篇

一般介绍: 由于mongodb数据库在javascript脚本环境中支持bson对象(json对象的二进制形式)的存取,因此对于数据的存取的效率是非常高的.在mongodb数据库中,将每一条等待插入的数据记录存储在内存中,因此,该数据库是一种非阻塞型数据库,在需要记录大量日志数据,实时测量数据或实时统计数据时,该数据库可以达到令人满意的效果.用于mongodb数据库支持在查询语句内使用javascript函数,也大大加强了它读取数据的能力.另外,mongodb数据库是一个面向文档的数据库,它允许

[MongoDB学习笔记-02] Node.js连接MongoDB的两种方法

MongoDB Node.js驱动程序是被官方所支持的原生Node.js驱动程序,他是至今为止最好的实现, 并且得到了MongoDB官方的支持.MongoDB团队已经采用MongoDB Node.js驱动程序作为标准方法. npm install mongodb@1.4.3 // MongoDB Node.js驱动程序 npm install mongoose@3.8.8 //mongoose模块 要从Node.js连接MongoDB数据库我们有两种方法可选择: 通过实例化mongodb模块中提

Scrapy和MongoDB的应用---爬取

Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取Web站点并从页面中提取结构化的数据.它最吸引人的地方在于任何人都可以根据需求方便的修改. MongoDB是现下非常流行的开源的非关系型数据库(NoSql),它是以“key-value”的形式存储数据的,在大数据量.高并发.弱事务方面都有很大的优势. 当Scrapy与MongoDB两者相碰撞会产生怎样的火花呢?与MongoDB两者相碰撞会产生怎样的火花呢?现在让我们做一个简单的爬取小说的TEST 1.安装Scra

java连接MongoDB数据库

这段时间尝试了一下MongoDB,感觉十分易用,方便,相比关系型的数据库来说优势也很大,于是尝试了下使用java连接MongoDB,并进行了 基本的增删改查操作. 首先先在控制台中连接数据库,查看数据库有几个表. 现在,新建一个maven工程,pom.xml中的依赖如下: <!-- WICKET DEPENDENCIES --> <dependency> <groupId>org.apache.wicket</groupId> <artifactId&