Mongdb数据库的下载和与Scrapy的连接

Mongdb数据库的下载与可视化工具的使用

Mongdb数据库的下载和安装

(1)下载地址https://www.mongodb.com/download-center/community
在这里插入图片描述
选择对应的版本号然后点击Download开始下载
(2)在这里插入图片描述在这里插入图片描述
即安装成功。
(3)配置Mongdb的存储目录
进入cmd,创建data文档(mkdir data),再进入data目录,在里面创建db目录

从命令行中,进入Mongdb(你的安装目录的)的bin文档,之后执行mongod --dbpath×××(为你的bin文档的路径),之后运行mongo.exe

可视化工具的下载和使用

1.可视化工具的下载
下载地址https://robomongo.org/
在这里插入图片描述
可以的话就下载两个,根据提示安装完成即可。
2.工具的使用
以Robo 3T做演示
在这里插入图片描述
点击这个按钮进行创建,创建完成之后,点击connect连接,连接成功后,右键你创建的文档就可建立数据库了

Scrapy连接Mongdb

1.在settings.py配置Mongdb连接信息

Mongoip='192.xxx.xx.xx'     #mongoDB节点 ip地址
MongoPort=27017             #端口号 
MongoDBname='datago306'     #文档名
MongoItem='jobItem'         #item名

2.设置pipelines,py文件

from pymongo import MongoClient     # 使用MongoClient连接mongo
from XXX.settings import Mongoip,MongoDBname,MongoPort,MongoItem
                                    # 从settings.py导入第一步配置的连接信息
                                    # XXX为scrapy工程名字
class CrawldataToMongoPipline(object):
    def __init__(self):
        host=Mongoip
        port=MongoPort
        dbName=MongoDBname
        client=MongoClient(host=host,port=port)    # 创建连接对象client
        db=client[dbName]                          # 使用文档dbName='datago306'
        self.post = db[MongoItem]                  # 使用item MongoItem='jobItem'

    def process_item(self, item, spider):
        job_info = dict(item)                      # item转换为字典格式
        self.post.insert(job_info)                 # 将item写入mongo
        return item

3.在settings.py中启用写好的CrawldataToMongoPipline middleware

ITEM_PIPELINES = {
   # 'tencent.pipelines.CrawldataPipeline': 300,
   'crawlData.pipelines.CrawldataToMongoPipline': 300,
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scrapy是一个强大的Python网络爬虫框架,而PostgreSQL是一种流行的关系型数据库管理系统。如果你想让Scrapy抓取的数据存储到PGSQL中,可以按照以下步骤操作: 1. 安装必要的库:首先需要安装`psycopg2`库,它允许Scrapy与PostgreSQL交互。你可以通过pip安装: ``` pip install psycopg2-binary ``` 2. 配置数据库连接:在Scrapy项目中,你需要创建一个配置文件(如settings.py),并设置数据库相关的参数: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'your_database_name', 'USER': 'your_username', 'PASSWORD': 'your_password', 'HOST': 'localhost', # 或者你的服务器地址 'PORT': '', # 如果默认端口,则留空 } } ``` 3. 数据提取处理:使用Scrapy的Item Pipeline,你可以编写Pipeline来处理抓取的数据,并将其保存到数据库中。例如,你可以创建一个`DatabasePipeline`,并利用`Item.save()`方法将数据插入到表中。 4. 异步处理:如果你希望在数据量大时避免阻塞爬虫,可以考虑使用Scrapy的中间件或者Celery这样的任务队列系统配合异步数据库操作。 ```python from scrapy.exporters import JsonLinesItemExporter from twisted.enterprise import adbapi class Psycopg2JsonLinesPipeline: def __init__(self, settings): self.dbpool = adbapi.ConnectionPool( "postgresql", host=settings["POSTGRES_HOST"], database=settings["POSTGRES_NAME"], user=settings["POSTGRES_USER"], password=settings["POSTGRES_PASSWORD"] ) @classmethod def from_crawler(cls, crawler): return cls(crawler.settings) def process_item(self, item, spider): query = self.dbpool.runInteraction(self._insert_data, item) query.addCallback(self.item_scraped, item, spider) return item def _insert_data(self, cursor, item): # 根据你的数据库模型,这里写入数据的具体SQL查询 insert_query = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)" cursor.execute(insert_query, (item['field1'], item['field2'])) def item_scraped(self, result, item, spider): pass # 可选:处理插入成功后的回调
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值