Scrapy_分布式爬虫

1.scrapy_redis

spider.py

spider写法一:同crawlspider
spider写法二:麻烦的是还需要手动向数据库添加起始地址

from scrapy_redis.spiders import RedisCrawlSpider
class Booktest(RedisCrawlSpider):
    name = 'myspider2'
    redis_key = 'myspider2:start_urls'
    ...

settings.py

添加
#核心配置
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
#共享的爬取队列,这里用需要redis的连接信息f
#例:REDIS_URL='redis://[:pass]@host:port/db'      [:pass]有就写没有就不写,db数据库代号(默认是0)
REDIS_URL = 'redis://@134.175.21.169:6379'
# 配置持久化
# 这样设置后指纹和请求队列则会保存在redis数据库中
#requests只会保存已经到调度器里但还没发给引擎的url
SCHEDULER_PERSIST = True
# 设置重启爬虫时是否清空爬取队列(单机爬虫可以设置,分布式爬虫不要设置)
# 这样每次重启爬虫都会清空指纹和请求队列,默认为False,一般不进行设置
# SCHEDULER_FLUSH_ON_START=False

2.scrapy_redis_bloomfilter

spider:同crawlspider

settings.py

#核心配置
SCHEDULER = "scrapy_redis_bloomfilter.scheduler.Scheduler"
DUPEFILTER_CLASS = "scrapy_redis_bloomfilter.dupefilter.RFPDupeFilter"
#共享的爬取队列,这里用需要redis的连接信息f
#例:REDIS_URL='redis://[:pass]@host:port/db'      [:pass]有就写没有就不写,db数据库代号(默认是0)
REDIS_URL = 'redis://@192.168.2.20:6379'
# 配置持久化
# 这样设置后指纹和请求队列则会一直保存在redis数据库中,默认为False
#requests只会保存已经到调度器里但还没发给引擎的url
SCHEDULER_PERSIST = True
# 设置重启爬虫时是否清空爬取队列(单机爬虫可以设置,分布式爬虫不要设置)
# 这样每次重启爬虫都会清空指纹和请求队列,默认为False,一般不进行设置
# SCHEDULER_FLUSH_ON_START=False
# Number of Hash Functions to use, defaults to 6
BLOOMFILTER_HASH_NUMBER = 6
# # Bit
BLOOMFILTER_BIT = 30

猜你喜欢

转载自blog.csdn.net/rookie_is_me/article/details/85262011
今日推荐