1. Scrapy_redis 在 scrapy的基础上实现了更多,更强大的功能,具体体现在:reqeust去重,爬虫持久化,和轻松实现分布式
2.怎么实现分布式爬虫
.修改settings文件
1.设置DUPEFILTER_CLASS,使用scrapy_redis的去重组件,不再使用scrapy自带的去重组件
2.设置SCHEDULER,使用scrapy_redis的调度器组件,不再使用scrapy自带的调度器组件
3.不清除redis的请求记录(队列), 允许暂停和停止爬取
4.设置请求任务的队列模式,SpiderPriorityQueue 是scrapy_redis框架默认的队列模式(有自己的优先级)
5.设置redis数据库的ip和端口
..导入redis的spider,修改属性名
...在终端执行redis-server redis-cli
3.部署
scrapyd
是运行scrapy爬虫的服务程序,它支持以http命令方式发布、删除、启动、停止爬虫程序。而且scrapyd可以同时管理多个爬虫,每个爬虫还可以有多个版本
4.修改配置文件:
[deploy] url=http://localhost:6800 project=项目名称
5.本地部署:
scrapyd-deploy -p <项目名称>
也可以指定版本号
scrapyd-deploy -p <项目名称> --version <版本号>
6.远端部署:
step1 购买linux系统服务器
step2 在终端上登录服务器
step3 配置项目运行环境
虚拟环境 添加三方库:pymongo pymysql requests
step4 修改scrapyd的配置文件,允许外网访问
查找配置文件的路径:find -name default_scrapyd.conf
修改配置文件: sudo vim 路径
step5 要去服务器安全组配置
step6 最后部署爬虫项目到服务器:
[deploy] url = http://118.24.255.219:6800 project=项目名称
step7 项目部署
scrapyd-deploy -p <项目名称>
也可以指定版本号
scrapyd-deploy -p <项目名称> --version <版本号>