刘硕的Scrapy笔记(七,数据存入MongoDB)

这里我没有按照书本的例子,下面是参考别人的代码写的,我个人觉得MongoDB这样写会比较清晰,适合新手
存入MongoDB之前,需要对MongoDB有稍微的了解,比如装完MongoDB以后,要先启动服务,不然启动scrapy爬取的时候,会一直报错,因为你的数据库根本没有运行,导致导入失败
启动MongoDB服务命令(每个人都不一样,看安装的路径),在cmd输入:

mongod.exe --dbpath H:\MongoDB\data

在scrapy里的"settings"增加数据库的"地址","端口","数据库名","集合名"这"四"个必要的参数:

计算机本地的地址:

  • MONGO_HOST='127.0.0.1'
    MONGO_DB默认的端口是:27017
  • MONGO_PORT=27017
    库名和集合名则命名随意:
  • MONGO_DB='Books'
  • MONGO_COLL='book_info'

以上,settings里面的设置就算完成了,下来安装pymongo库,安装完成后,Pipeline中这么写:

from scrapy.conf import settings

class MongoDBPipeline(object):
    def __init__(self):
        self.client=pymongo.MongoClient(host=settings['MONGO_HOST'],port=settings['MONGO_PORT'])
        self.db=self.client[settings['MONGO_DB']]
        self.post=self.db[settings['MONGO_COLL']]
    def process_item(self,item,spider):
        postItem=dict(item)
        #insert()方法只接受字典,故这里需要转化下
        self.post.insert(postItem)
        return item

在settings激活下Pipeline
运行:scrapy crawl books
爬取完毕后,打开数据库,可以看到,所有的数据都写在里面了,完成.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化...
    Evtion阅读 6,152评论 12 18
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,253评论 2 89
  • 学习python时,爬虫是一种简单上手的方式,应该也是一个必经阶段。本项目用Scrapy框架实现了抓取豆瓣top2...
    豌豆花下猫阅读 1,485评论 0 6
  • 一、MongoDB简介 1.概述 ​ MongoDB是一个基于分布式文件存储的数据库,由C++语言编写。旨在为WE...
    郑元吉阅读 1,111评论 0 2
  • 车辆行驶八万零七百公里,十月十四号礼拜六,进行车辆大保。换减速箱齿轮油,机油与两滤,检查刹车油与助力油正常。共计花...
    醉魔君阅读 214评论 0 0

友情链接更多精彩内容