在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的對象

  其它的讀取關閉沒有發生任何的改變,讀取關閉都是正常的操作

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM