当前位置: 首页>后端>正文

python 分布式工具 pyspider 分布式

今天学习了分布式爬虫和爬虫的部署,分布式爬虫也叫scrapy_redis,Scrapy_redis在scrapy的基础上实现了更多,更强大的功能,具体体现在:reqeust去重,爬虫持久化,和轻松实现分布式,我们使用命令:
pip3 install scrapy-redis来安装,Scrapy-redis提供了下面四种组件:

  1. Scheduler

2.Duplication Filter

3.Item Pipeline

4.Base Spider
Scrapy_redis工作流程和scrapy工作流程大致相同,只不过多了redis,redis基于内存,速度快,redis里的set集合类型特点是不允许重复,
实现分布式爬虫我们需要在settings设置几种选项1.DUPEFILTER_
这里表示启用scrapy-redis里的去重组件,不实用scrapy默认的去重
2.SCHEDULER = “scrapy_redis.scheduler.Scheduler” 使用了scrapy-redis里面的调度器组件,不使用scrapy默认的调度器
3,SCHEDULER_PERSIST = True 允许暂停,redis请求的记录不会丢失,不清除Redis队列,可以恢复和暂停,
4.修改请求的队列模式 scrapy-redis默认的请求队列形式(有自己的优先级顺序)
是按照redis的有序集合排序出队列的,此外还需要设置地址和端口号
REDIS_HOST = ‘redis的主机的ip’ 指定要存储的redis的主机的ip,默认存储在127.0.0.1 REDIS_PORT = ‘6379’ 定要存储的redis的主机的port,默认6379
scrapy爬虫的部署 爬虫的部署我们需要用到scrapyd,它是是运行scrapy爬虫的服务程序,它支持以http命令方式发布、删除、启动、停止爬虫程序。而且scrapyd可以同时管理多个爬虫,每个爬虫还可以有多个版本,我们使用pip3 install scrapyd来安装它,还需要安装scrapyd-client,它是发布爬虫需要使用另一个专用工具,就是将代码打包为EGG文件,其次需要将EGG文件上传到远程主机上这些操作需要scrapyd-client来帮助我们完成,安装命令pip3 install scrapyd-client,这些完成以后,我们要修改scrapy项目目录下的scrapy.cfg配置文件 [deploy]
url=http://localhost:6800
project=项目名称,爬虫的部署也分为本地部署和远端部署,本地部署:
项目部署相关命令: 注意这里是项目的名称而不是工程的名称
scrapyd-deploy -p <项目名称>
也可以指定版本号
scrapyd-deploy -p <项目名称> --version <版本号>

远端部署需要用到服务器,详情自己了解 …不多说 再会



https://www.xamrdz.com/backend/3wj1962902.html

相关文章: