最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文搞懂Scrapy與MongoDB交互過程

 更新時間:2022年07月08日 15:20:56   作者:依戀、陽光  
這篇文章主要介紹了Scrapy與MongoDB交互過程,文末給大家介紹了類方法@classmethod的相關(guān)知識,需要的朋友可以參考下

Pipeline.py

class MongoDBPipeline:
    def __init__(self,conn,database):
        self.conn = conn
        self.database = database
    @classmethod
    def from_crawler(cls, crawler):
        return cls(
            conn=crawler.settings.get('MONGODB_CONNECTION_STRING'),
            database=crawler.settings.get('MONGODB_DATABASE')
        )
    def open_spider(self,spider):
        # 創(chuàng)建連接對象
        self.client = pymongo.MongoClient(self.conn)
        # 連接要用的使用的數(shù)據(jù)庫
        self.db = self.client[self.database]
    def process_item(self,item,spider):
        # 設(shè)置使用表名稱
        name = item.__class__.__name__
        # 默認item類名
        self.db[name].insert_one(dict(item))
        return item
    def close_spider(self,spider):
        self.client.close()

PS:

1.不能用insert來插入數(shù)據(jù),PyMongo 4.0.* 中 Collection.insert 方法被移除,使用 Collection.insert_one 或者 Collection.insert_many 替代:

db[name].insert_one({'my': 'document'})
db[name].insert_many([{'doc': 2}, {'doc': 3}])

2.process_item一定要寫return item,不然接收不了返回值。

3.open_spider, process_item, close_spider的名稱和參數(shù)不能改變,因為這是重寫類方法。

setting.py

MONGODB_CONNECTION_STRING = '127.0.0.1'
MONGODB_DATABASE = 'test'

補充知識點:類方法@classmethod

類方法也算一種實用的技巧,簡單描述之:“類方法讓類模板具有記憶力”。

類模板就是我們所定義的類。在普通情況下,不使用類方法對類進行實例化,類本身是不具有記憶性的。只是當一個靜態(tài)模板被套用多次而已。如果我們想讓類在每一次實例化之后,都能記載一些記憶,是否會對很多操作很有用?

舉個例子:

class Man:
    id = 0 # 類變量
    def __init__(self, name):
        self.name = name
        self.id = self.id_number()
    @classmethod
    def id_number(cls):
        cls.id += 1
        return cls.id
a = Man('A')
print(a.id)
b = Man('B')
print(b.id)

上面的輸出為:

1
2

我對Man這個類進行實例化2次,每個實例的id都不一樣。這就依靠類方法來實現(xiàn)了:首先,用@classmethod描述類方法,然后用"cls"代表本類。類方法對類屬性進行的處理是有記憶性的。

PS:類方法處理的變量一定要是類變量。因為在類方法里你用不了self來尋址實例變量,所以需要把類變量放到最前面描述,如上面的"id=0"所示。類變量是可以被self訪問的,所以,在類變量定義好了以后,不需要在_init_函數(shù)里對類變量再一次描述。所以,上面代碼里self.id不一定需要。

到此這篇關(guān)于Scrapy與MongoDB交互的文章就介紹到這了,更多相關(guān)Scrapy與MongoDB內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析MongoDB之安全認證

    淺析MongoDB之安全認證

    MongoDB是基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。默認情況下,MongoDB實例啟動運行時是沒有啟用用戶訪問權(quán)限控制的,在實例本機服務器上都可以隨意連接到實例進行各種操作,MongoDB不會對連接客戶端進行用戶驗證
    2021-06-06
  • MongoDB的基本操作實例詳解【服務端啟動,客戶端連接,CRUD操作】

    MongoDB的基本操作實例詳解【服務端啟動,客戶端連接,CRUD操作】

    這篇文章主要介紹了MongoDB的基本操作,結(jié)合實例形式分析了MongoDB數(shù)據(jù)庫的服務端啟動,客戶端連接,CRUD操作等基本實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2020-04-04
  • MongoDB運行日志實現(xiàn)自動分割的方法實例

    MongoDB運行日志實現(xiàn)自動分割的方法實例

    這篇文章主要給大家介紹了關(guān)于MongoDB運行日志實現(xiàn)自動分割的方法,文中以一個MongoDB實例為例,寫了一個腳本來實現(xiàn)自動分割MongoDB日志,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • MongoDB?Server?用戶名和密碼登錄的操作步驟

    MongoDB?Server?用戶名和密碼登錄的操作步驟

    MongoDB Server默認不進行安全認證,即任何MongoDB Client都可以連接并擁有操作權(quán)限,這篇文章主要介紹了MongoDB?Server?用戶名和密碼登錄的步驟,需要的朋友可以參考下
    2024-03-03
  • 淺談MySQL和MariaDB區(qū)別(mariadb和mysql的性能比較)

    淺談MySQL和MariaDB區(qū)別(mariadb和mysql的性能比較)

    MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品
    2018-02-02
  • MongoDB 常用的crud操作語句

    MongoDB 常用的crud操作語句

    本篇介紹了 MongoDB 的基本 CRUD 操作,可以看到 MongoDB 的語法極其簡潔,而且可以使用鏈式調(diào)用的方式進行操作。操作的參數(shù)也很固定,且方法名稱很明確,上手來說是很容易的
    2021-06-06
  • mongo中模糊查詢的綜合應用

    mongo中模糊查詢的綜合應用

    這篇文章主要給大家介紹了關(guān)于mongo中模糊查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mongodb具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • MongoDB中文檔的更新操作示例詳解

    MongoDB中文檔的更新操作示例詳解

    這篇文章主要給大家介紹了關(guān)于MongoDB中文檔的更新操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-11-11
  • 詳解MongoDB中創(chuàng)建集合與刪除集合的操作方法

    詳解MongoDB中創(chuàng)建集合與刪除集合的操作方法

    因為MongoDB屬于NoSQL,所以集合collection相當于關(guān)系型數(shù)據(jù)庫中的表table,這里我們就來詳解MongoDB中創(chuàng)建集合與刪除集合的操作方法:
    2016-06-06
  • MongoDB中的定時索引示例詳解

    MongoDB中的定時索引示例詳解

    這篇文章主要給大家介紹了關(guān)于MongoDB中定時索引的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MongoDB具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08

最新評論

江山市| 江都市| 威信县| 德格县| 涿州市| 安庆市| 南昌市| 定结县| 洛浦县| 刚察县| 鄂托克前旗| 和龙市| 万安县| 宜宾市| 武穴市| 若尔盖县| 金山区| 遂川县| 宁阳县| 鄂伦春自治旗| 定安县| 葫芦岛市| 保德县| 清河县| 清涧县| 许昌市| 牙克石市| 泸西县| 襄城县| 沙湾县| 镇平县| 龙胜| 闽侯县| 离岛区| 平顶山市| 祁连县| 高清| 曲阜市| 元谋县| 同德县| 体育|