美文网首页
刘硕的Scrapy笔记(七,数据存入MongoDB)

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

作者: 费云帆 | 来源:发表于2018-11-29 11:48 被阅读0次

    这里我没有按照书本的例子,下面是参考别人的代码写的,我个人觉得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
    爬取完毕后,打开数据库,可以看到,所有的数据都写在里面了,完成.

    相关文章

      网友评论

          本文标题:刘硕的Scrapy笔记(七,数据存入MongoDB)

          本文链接:https://www.haomeiwen.com/subject/vrixcqtx.html