zoukankan      html  css  js  c++  java
  • 在scrapy中将数据保存到mongodb中

    利用item pipeline可以实现将数据存入数据库的操作,可以创建一个关于数据库的item pipeline

    需要在类属性中定义两个常量

      DB_URL:数据库的URL地址

      DB_NAME:数据库的名字

    在Spider爬取的整个过程中,数据库的连接和关闭操作只需要进行一次就可以,应该在开始处理之前就要连接数据库,并在处理完所有数据之后就关闭数据库。所以需要在open_spider和close_spider中定义数据库的连接和关闭操作

      在process_item中实现MongoDB的写入操作,使用self.db和spider.name获得一个集合,然后就是将数据插入到这个集合中,集合对象的insert_one插入的是一个字典对象,不能传入item对象,所以在调用之前要对这个item对象进行判断,如果是item对象就要转成字典

    如果要是想通过配置文件来进行配:

      增加了类方法from_crawler(cls, cralwer),代替了在类属性中定义的DB_URL,DB_NAME

      如果是一个item pipeline定一个from_crawler方法,scrapy就会调用这个方法来创建item pipeline对象。这个方法有两个参数

        cls

          item pipeline类的对象,这里指的是当前这个item pipeline对象

        crawler

         Crawler是scrapy中的一个核心的对象,可以通过crawler的settings属性访问配置文件

      在from_crawler中,读取配置文件中的MONGO_DB_URL和MONGO_DB_NAME(不存在使用默认值),赋值给cls的属性,也就是当前item pipeline的对象

      其它的读取关闭没有发生任何的改变,读取关闭都是正常的操作

  • 相关阅读:
    js-事件委托
    compass的使用
    Ruby与sass 与compass安装
    JavaScript对象属性 constructor
    JQuery中常用的 属性选择器
    css3新增的背景属性
    js操作符
    Python04---重要函数
    Python03---内置模块
    Python02---整数,字符串,元组,列表,集合,字典
  • 原文地址:https://www.cnblogs.com/tulintao/p/11702777.html
Copyright © 2011-2022 走看看