分布式爬虫

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 <版本号>

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