分布式概念:
使用多台机器搭建一个分布式机群,在分布式机群中共同运行同一组程序,让其对同一个网站资源进行联合数据爬取。
原生的Scrapy框架是无法实现分布式的,原因有两点:
1.调度器无法被分布式机群共享
2.管道无法被共享
如何实现分布式?
使用Scrapy结合这scrapy-redis组件实现分布式
scrapy-redis组件的作用:
1.给scrapy提供可以被共享的管道和调度器
2.安装:pip install scrapy_redis
实现流程:
1.创建工程
2.cd 工程
3.创建爬虫文件(基于CrawlSpider的爬虫文件)
4.修改爬虫文件:
① 导包:from scrapy_redis.spiders import RedisCrawlSpider
② 修改当前爬虫类的父类:RedisSpider
③ 删除start_urls,添加一个新属性:redis_key = ‘xxx’,可以被共享的调度器队列的名称
④ 基于常规的操作获取url发送请求解析数据
⑤ 修改settings.py配置文件:
—-指定调度器
#增加了一个去