爬蟲
第十二天
分佈式爬蟲的實現
-
創建爬蟲類
scrapy genspider itcast itcast.cn
-
修改繼承類爲scrapy_reids中的RedisSpider
-
刪除原有的start_urls
-
添加存在start_urls在redis數據庫中的鍵
from scrapy_redis.spiders import RedisSpider class ItcastSpider(RedisSpider): name = 'itcast' allowed_domains = ['itcast.cn'] # 刪除原有的start_urls # start_urls = ['http://itcast.cn/'] # 添加存在start_urls在redis數據庫中的鍵 redis_key = "itcast:start_urls" def parse(self, response): pass
前提:必須實現增量式爬蟲的配置
USER_AGENT = 'scrapy-redis (+https://github.com/rolando/scrapy-redis)' # 指定了去重的類 DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" # 制定了調度器的類 SCHEDULER = "scrapy_redis.scheduler.Scheduler" # 調度器的內容是否持久化 SCHEDULER_PERSIST = True # 多臺機器共享的redis的url REDIS_URL = "redis://192.168.31.69:6379"
-
啓動
lpush itcast:start_urls
http://www.itcast.cn
scrapy crawl itcast
RedisCrawlSpier的使用
scrapy genspider -t crawl itcast itcast.cn
修改繼承類爲RedisCrawlSpier
刪除start_urls
添加redis_key