scrapy_redis對接布隆過濾器(Bloom Filter)

使用方式:

pip3 install scrapy-redis-bloomfilter


使用的方法和Scrapy-Redis基本相似,在這裏說明幾個關鍵配置。

# 1. 替換原來的請求調度器的實現類,使用 scrapy-redis 中請求調度器
SCHEDULER = "scrapy_redis_bloomfilter.scheduler.Scheduler"

# 2. 設置去重類,實現去重的代碼規則,會生成 去重指紋 存在 redis 中
# 去重類,要使用Bloom Filter請替換DUPEFILTER_CLASS
DUPEFILTER_CLASS = "scrapy_redis_bloomfilter.dupefilter.RFPDupeFilter"

# 3. 開啓增量式
SCHEDULER_PERSIST = True

# 4. 配置redis
REDIS_HOST = "127.0.0.1" #
REDIS_PORT = 6379

REDIS_PARAMS = {
'db': 13
}


# 散列函數的個數,默認爲6,可以自行修改
BLOOMFILTER_HASH_NUMBER = 6
# Bloom Filter的bit參數,默認30,佔用128MB空間,去重量級1億
BLOOMFILTER_BIT = 30


DUPEFILTER_CLASS是去重類,如果要使用Bloom Filter,則DUPEFILTER_CLASS需要修改爲該包的去重類。

BLOOMFILTER_HASH_NUMBER是Bloom Filter使用的散列函數的個數,默認爲6,可以根據去重量級自行修改。

BLOOMFILTER_BIT即前文所介紹的BloomFilter類的bit參數,它決定了位數組的位數。如果BLOOMFILTER_BIT爲30,那麼位數組位數爲2的30次方,這將佔用Redis 128 MB的存儲空間,去重量級在1億左右,即對應爬取量級1億左右。如果爬取量級在10億、20億甚至100億,請務必將此參數對應調高

一定要注意參數!!(爬取數據量級別對應一下 )
項目地址代碼:
https://github.com/Python3WebSpider/ScrapyRedisBloomFilter

學習地址:

崔慶才大神的騰訊雲+社區:

https://cloud.tencent.com/developer/article/1084962

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章