崔庆才老师爬虫的学习笔记。

一、部署详解

1、scrapyd组件

github地址:https://github.com/scrapy/scrapyd

官方文档:http://scrapyd.readthedocs.io/en/stable/

2、安装

pip install scrapyd

如果出现和python3不兼容的问题,打开python包管理的网站:https://pypi.org/ ,搜索scrapyd,找到一个兼容的版本安装。

3、启动

scrapyd

会回显它是在http://127.0.0.1:6800/ 上监听的。linux上是http://0.0.0.0:6800/

4、怎样部署项目?

借助scrapyd-client:

gitbub地址:https://github.com/scrapy/scrapyd-client

安装pip install scrapyd-client

使用详见官方文档。

5、修改项目

修改scrapy.cfg文件[deploy],添加远程主机url = http://123.206.65.37:6800/addversion.json

输入命令scrapyd-deploy帮助我们完成项目的部署。远程部署到主机上了。

输入命令curl http://123.206.65.37:6800/listprojects.json可以看到已经上传成功了。

输入命令curl http://123.206.65.37:6800/schedule.json -d project=zhihuuser -d spider=zhihu指定项目和spider远程开启调度进程。

连续输入三个curl http://123.206.65.37:6800/schedule.json -d project=zhihuuser -d spider=zhihu则开启三个调度进程。

输入命令curl http://123.206.65.37:6800/listjobs.json\?project\=zhihuuser可以查看当前运行的任务。也可以在浏览器里查看。

输入命令curl http://123.206.65.37:6800/cancel.json -d project=zhihuuser -d job=35a3bce034hkk2j4kl232l43hjkl指定job代号停止任务。

6、python-scrapyd-api库

是对scrapyd相关api做了一个封装。这样可以在python代码中调用scrapyd的api了,就不必用curl接口请求的方式调度了。

gitbub地址:https://github.com/djm/python-scrapyd-api

安装pip install python-scrapyd-api

命令行里测试下:

1
2
3
4
5
from scrapyd_api import ScrapydAPI

scrapyd = ScrapydAPI('http://123.206.65.37:6800')
scrapyd.list_projects()
scrapyd.list_spiders(zhihuuser)

持续更新…

最后更新: 2018年08月16日 17:38

原始链接: http://pythonfood.github.io/2018/07/05/Scrapy分布式的部署详解/

× 多少都行~
打赏二维码