Scrapyd安装及简单的使用
scrapyd是一个网页版管理scrapy的工具, scrapy爬虫写好后,可以用命令行运行,但是如果能在网页上操作就比较方便. scrapyd就是为了解决这个问题,能够在网页端查看正在执行的任务,也能新建爬虫任务,和终止爬虫任务,功能比较强大.
scrapyd 是由scrapy 官方提供的爬虫管理工具,使用它我们可以非常方便地上传、控制爬虫并且查看运行日志。
1、安装scrapyd, 需要在python3的环境下安装使用
pip install scrapyd
如果同时使用python2和python3
pip3 install scrapyd
2、运行scrapyd 服务
直接运行命令scrapyd即可:
scrapyd
默认情况下scrapyd 监听 0.0.0.0:6800 端口,运行scrapyd 后在浏览器http://localhost:6800/ 即可查看到当前可以运行的项目:
3、部署scrapy 项目
直接使用scrapyd-client提供的scrapyd-deploy工具.
pip install scrapyd-client
直接在项目根目录下,修改工程目录下的 scrapy.cfg 文件:
[deploy:scrapyd_name] #默认情况下并没有scrapyd_name,它只是一个名字target,可以在配置文件中写多个名字不同的deploy
url = http://scrapyd.mydomain.com/api/scrapyd/ #要部署项目的服务器的地址
# url = http://localhost:6800/ 正常情况这里是注释的,用于本地本部署
project = myspider 项目名字
username = john #访问服务器所需的用户名和密码(如果不需要密码可以不写)
password = secret
其中的username 和 password 用于在部署时验证服务器的HTTP basic authentication,须要注意的是这里的用户密码并不表示访问该项目须要验证,而是登录服务器用的。
检查scrapy配置是否正确
scrapyd-deploy -l
4、项目部署到服务器
在启动下面的命令时,要保证scrapyd是启动的,6800端口是可以访问的,否则会出现Deploy failed错误:
<urlopen error [Errno 111] Connection refused>
scrapyd-deploy <target> -p <project> --version <version>
version 可以自动生成可以不要这一个参数。
部署成功会响应:部署的状态,项目名称,版本号和爬虫个数,以及当前的主机名称
Packing version 1523349647
Deploying to project "myspider " in http://localhost:6800/addversion.json
Server response (200):
{"project": "myspider ", "node_name": "ubuntu", "status": "ok", "spiders": 1, "version": "1523349647"}
启动
开启爬虫 schedule
curl http://localhost:6800/schedule.json -d project=myspider -d spider=tencent
停止 cancel
curl http://localhost:6800/cancel.json -d project=myspider -d job=94bd8ce041fd11e6af1a000c2969bafd
列出爬虫
curl http://localhost:6800/listspiders.json?project=myspider
删除项目
curl http://localhost:6800/delproject.json -d project=myspider