python--scrapy 保存数据到 mongodb

第一步,settings.py添加

ITEM_PIPELINES = {
   # 'scrapy_runklist.pipelines.ScrapyRunklistPipeline': 300,
   'scrapy_runklist.pipelines.ScrapyWeiBoPipeline': 300,
}

# mongodb配置
MONGO_HOST = "127.0.0.1"  # 主机IP
MONGO_PORT = 27017  # 端口号
MONGO_DB = "ranklist"  # 库名
MONGO_COLL_WEIBO = "weibo"  # collection名
# MONGO_USER = "simple" #用户名
# MONGO_PSW = "test" #用户密码

第二步,item.py添加

class WeiboItem(scrapy.Item):
    id = scrapy.Field()
    word = scrapy.Field()
    url = scrapy.Field()

第三步,spider.py添加

def parse(self, response):
	"""此处省略处理响应内容的代码, 直接 yield item 对象"""  
	weiboItem = WeiboItem()
	weiboItem["id"] = id
	weiboItem["word"] = word
	weiboItem["url"] = url
     yield weiboItem

第四步,pipline.py添加

import pymongo
from scrapy.utils.project import get_project_settings
settings = get_project_settings()

class ScrapyWeiBoPipeline:

    def __init__(self):
        # 链接数据库
        client = pymongo.MongoClient(host=settings['MONGO_HOST'], port=settings['MONGO_PORT'])
        self.db = client[settings['MONGO_DB']]  # 获得数据库的句柄
        self.coll = self.db[settings['MONGO_COLL_WEIBO']]  # 获得collection的句柄
        # 数据库登录需要帐号密码的话
        # self.db.authenticate(settings['MONGO_USER'], settings['MONGO_PSW'])

    def process_item(self, item, spider):
        print("pipline item ==== ", item)
        postItem = dict(item)  # 把item转化成字典形式
        self.coll.insert(postItem)  # 向数据库插入一条记录
        return item  # 会在控制台输出原item数据,可以选择不写

相关推荐

  1. python--scrapy 保存数据 mongodb

    2024-03-18 00:50:03       21 阅读
  2. Scrapy数据存储数据库

    2024-03-18 00:50:03       12 阅读
  3. ScrapyMongoDB的异步数据存储

    2024-03-18 00:50:03       12 阅读
  4. python制造虚拟姓名电话保存mysql数据库

    2024-03-18 00:50:03       13 阅读
  5. PYTHON 访问NVD获取漏洞信息保存本地数据库

    2024-03-18 00:50:03       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-18 00:50:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-18 00:50:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-18 00:50:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-18 00:50:03       20 阅读

热门阅读

  1. FTP基本配置(vsftpd.conf)文件讲解

    2024-03-18 00:50:03       20 阅读
  2. 面试(持续更新)

    2024-03-18 00:50:03       16 阅读
  3. 删除链表中的指定元素

    2024-03-18 00:50:03       21 阅读
  4. reverse_iterator实现

    2024-03-18 00:50:03       16 阅读
  5. springBoot + mybatis + Vue3的前后端分离小demo

    2024-03-18 00:50:03       20 阅读
  6. 【C/C++ 学习笔记】内存

    2024-03-18 00:50:03       22 阅读