30. Scrapy-Redis 其他
#啟用Redis調(diào)度存儲請求隊列
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
#確保所有的爬蟲通過Redis去重
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
#默認(rèn)請求序列化使用的是pickle 但是我們可以更改為其他類似的。PS:這玩意兒2.X的可以用。3.X的不能用
#SCHEDULER_SERIALIZER = "scrapy_redis.picklecompat"
#不清除Redis隊列、這樣可以暫停/恢復(fù) 爬取
#SCHEDULER_PERSIST = True
#使用優(yōu)先級調(diào)度請求隊列 (默認(rèn)使用)
#SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.PriorityQueue'
#可選用的其它隊列
#SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.FifoQueue'
#SCHEDULER_QUEUE_CLASS = 'scrapy_redis.queue.LifoQueue'
#最大空閑時間防止分布式爬蟲因?yàn)榈却P(guān)閉
#這只有當(dāng)上面設(shè)置的隊列類是SpiderQueue或SpiderStack時才有效
#并且當(dāng)您的蜘蛛首次啟動時,也可能會阻止同一時間啟動(由于隊列為空)
#SCHEDULER_IDLE_BEFORE_CLOSE = 10
#將清除的項(xiàng)目在redis進(jìn)行處理
ITEM_PIPELINES = {
? ?'scrapy_redis.pipelines.RedisPipeline': 300
}
#序列化項(xiàng)目管道作為redis Key存儲
#REDIS_ITEMS_KEY = '%(spider)s:items'
#默認(rèn)使用ScrapyJSONEncoder進(jìn)行項(xiàng)目序列化
#You can use any importable path to a callable object.
#REDIS_ITEMS_SERIALIZER = 'json.dumps'
#指定連接到redis時使用的端口和地址(可選)
#REDIS_HOST = 'localhost'
#REDIS_PORT = 6379
#指定用于連接redis的URL(可選)
#如果設(shè)置此項(xiàng),則此項(xiàng)優(yōu)先級高于設(shè)置的REDIS_HOST 和 REDIS_PORT
#REDIS_URL = 'redis://user:pass@hostname:9001'
#自定義的redis參數(shù)(連接超時之類的)
#REDIS_PARAMS ?= {}
#自定義redis客戶端類
#REDIS_PARAMS['redis_cls'] = 'myproject.RedisClient'
#如果為True,則使用redis的'spop'進(jìn)行操作。
#如果需要避免起始網(wǎng)址列表出現(xiàn)重復(fù),這個選項(xiàng)非常有用。開啟此選項(xiàng)urls必須通過sadd添加,否則會出現(xiàn)類型錯誤。
#REDIS_START_URLS_AS_SET = False
#RedisSpider和RedisCrawlSpider默認(rèn) start_usls 鍵
#REDIS_START_URLS_KEY = '%(name)s:start_urls'
#設(shè)置redis使用utf-8之外的編碼
#REDIS_ENCODING = 'latin1'