分布式爬虫

这个爬虫继承的是CrawlSpider,它是用来概括Redis的持续性。

Ctrl + C停掉之后,再运行dmoz爬虫,之前的爬取记录是保留在Redis里的。

scrapy-redis版爬取记录保存redis里面的,其实就是一个redis类,需要设置rule规则。

scrapy-redis 一般直接写allowd_domains来指定需要爬取的域,也可以从在构造方法__init__()里动态定义爬虫爬取域范围(一般不用)。

必须指定redis_key,即启动爬虫的命令,参考格式:redis_key = 'myspider:start_urls'

根据指定的格式,start_urls将在 Master端的 redis-cli 里 lpush 到 Redis数据库里,RedisSpider 将在数据库里获取start_urls。

这个RedisCrawlSpider类爬虫继承了RedisCrawlSpider,能够支持分布式的抓取。因为采用的是crawlSpider,所以需要遵守Rule规则,以及callback不能写parse()方法。

同样也不再有start_urls了,取而代之的是redis_key,scrapy-redis将key从Redis里pop出来,成为请求的url地址。

scrapy-redis一般直接写allowd_domains来指定需要爬取的域,在构造_init_()里动态定义爬虫爬取域范围(一般不用)。

根据指定的格式,start_urls将在 Master端的 redis-cli 里 lpush 到 Redis数据库里,RedisSpider 将在数据库里获取start_urls。

你可能感兴趣的:(分布式爬虫)