本帖最后由 HOW2J 于 2020-2-19 10:54 编辑 部署相关库的安装
- 大规模抓取数据,需要分布式爬虫。分布式爬虫需要多台主机,每台主机有多个爬虫任务,但源代码只有一份。需要将一份代码同时部署到多台主机上来协同运行。
- Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
- 对于Scrapy,它有一个扩展组件,叫Scrapyd,安装该扩展组件之后,即可远程管理Scrapy任务,包括部署源码、启动任务、监听任务。还要安装Scrapyd-Client和Scrapyd API来更方便地完成部署和监听操作,还可以利用Docker集群部署。只需要将爬虫制作为Docker镜像,只要主机安装了Dicker,就可以直接运行爬虫。就不用担心环境配置、版本问题。
1. Docker的安装
Docker是一种容器技术,可以将应用和环境等进行打包,形成一个独立的、类似于iOS的App形式的“应用”。这个应用可以直接被分发到任意一个支持Docker的环境中,通过简单的命令即可启动运行。Docker是一种最流行的容器化实行方案,和虚拟化技术类似,能极大的方便应用服务的部署;又于虚拟化技术不同,它以一种更轻量的方式实现应用服务的打包。使用Docker,可以让每个彼此相互隔离,在同一台机器上同时运行多个应用,但它们之间共享一个操作系统。Docker的优势在于:可以在更细的粒度上进行资源管理,也比虚拟化技术更加节约资源。
2. Scrapyd的安装
3. Scrapyd-Client的安装
将Scrapy代码部署到远程Scrapyd的时候,第一步就是要将代码打包为EGG文件,其次需要将EGG文件上传到远程主机。这个需要程序来实现,但Scrapyd-Client已经实现了这些功能。
4. Scrapyd API的安装
安装好Scrapyd之后,可以直接请求它提供的API来获取当前主机的Scrapy任务运行状况。但用这种方式来获取任务状态还是有点繁琐,所以Scrapyd API就为它做了一层封装。
5. Scrapyrt的安装
Scrapyrt为Scrapy提供了一个调度的HTTP接口,这样我们就不需要在执行Scrapy命令而是通过请求一个HTTP接口来调度Scrapy任务的跳度。
-
链接
Github:https://github.com/scrapinghub/scrapyrt
文档:http://scrapyrt.readthedocs.io
-
pip安装
命令:pip3 install scrapyrt
运行之后,会默认在9080端口上启动服务,更换端口,使用-p参数,比如:scrapyrt -p 9081 ,这样端口就会在9081端口上运行了。
-
Docker安装
Scrapyrt也支持Docker,比如,要想在9080端口上运行,且本地Scrapy项目路径为/home/quoteshot。命令如下:
docker run -p 9080:9080 -tid -v /home/user/quotesbot:/scrapyt/project scrapinghub/scrapyrt
6. Gerapy的安装
Gerapy是一个Scrapy分布式管理模块。
大部分内容参照《《Python 3网络爬虫开发实战》》 |