scrapyd的安装和基本使用
来源:互联网 发布:java rmi 无继承 框架 编辑:程序博客网 时间:2024/06/05 07:29
Scrapyd是一款用于管理scrapy爬虫的部署和运行的服务,提供了HTTP JSON形式的API来完成爬虫调度涉及的各项指令。Scrapyd是一款开源软件,代码托管于Github上。本文简单地介绍一下在CentOS机器上安装和运行Scrapyd的各个步骤。
1. 安装scrapyd和scrapyd-client
使用pip可以轻松地安装scrapyd和scrapyd-client:
pip install scrapydpip install scrapyd-client
安装完成后,直接运行命令scrapyd
即可启动scrapyd。运行scrapyd之后,默认会在运行命令的目录下创建scrapyd运行时需要的logs等目录
2. 配置文件
scrapyd启动的时候会自动搜索配置文件,配置文件的加载顺序如下,最后加载的设置会覆盖前面的设置:
- /etc/scrapyd/scrapyd.conf
- ~/etc/scrapyd/conf.d/*
- scrapyd.conf
- ~/.scrapyd.conf
3. 为scrapyd创建启动脚本
cd至/etc/rc.d/init.d/目录或者/etc/init.d/目录下,创建并编辑名为scrapyd的文件,其中的PORT、HOME、BIN根据大家的实际情况修改:
PORT=6800HOME="/var/scrapyd/"BIN="/usr/local/bin/scrapyd" pid=`netstat -lnopt | grep :$PORT | awk '/python/{gsub(/\/python/,"",$7);print $7;}'` start() { if [ -n "$pid" ]; then echo "server already start,pid:$pid" return 0 fi cd $HOME nohup $BIN & echo "start at port:$PORT"} stop() { if [ -z "$pid" ]; then echo "not find program on port:$PORT" return 0 fi #结束程序,使用讯号2,如果不行可以尝试讯号9强制结束 kill -9 $pid echo "kill program use signal 9,pid:$pid"} status() { if [ -z "$pid" ]; then echo "not find program on port:$PORT" else echo "program is running,pid:$pid" fi} case $1 in start) start ;; stop) stop ;; status) status ;; *) echo "Usage: {start|stop|status}" ;;esac exit 0
编辑完成后,为scrapyd文件增加执行权限:
chmod +x scrapyd
至此,我们已经可以使用service scrapyd start等命令了。如果有需要还可以继续未scrapyd添加到开机启动程序中:
chkconfig scrapyd on
4. 部署scrapy爬虫
4.1 让爬虫找到scrapyd
假设我们有一个豆瓣的爬虫,找到爬虫的scrapy.cfg文件,添加如下内容:
[deploy:server-douban]url = http://localhost:6800/project = example
其中,server-douban是服务器的名字,url是运行scrapyd的服务器的地址,6800是scrapyd的默认监听端口,project是此豆瓣爬虫所在的文件夹。在scrapy.cfg的目录下,检查配置列出当前可用的服务器:
scrapyd-deploy -l
4.2 部署爬虫
部署操作会打包你的当前项目,如果当前项目下有setup.py文件,就会使用它,没有的会就会自动创建一个。如果后期项目需要打包的话,可以根据自己的需要修改里面的信息,也可以暂时不管它。 从返回的结果里面,我们可以看到部署的状态,项目名称,版本号和爬虫个数,以及当前的主机名称。
scrapyd-deploy server-douban -p example
4.3 检查部署结果
列出服务器上所有的项目,检查名为example的项目是否已经部署上去了:
scrapyd-deploy -L server-douban
4.4 按照scrapy.cfg自动部署
scrapyd-deploy
5. 运行API
- 调度爬虫
curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider# 带上参数curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider -d setting=DOWNLOAD_DELAY=2 -d arg1=val1
- 取消运行
curl http://localhost:6800/cancel.json -d project=myproject -d job=6487ec79947edab326d6db28a2d86511e8247444
- 列出项目
curl http://localhost:6800/listprojects.json
- 列出版本
curl http://localhost:6800/listversions.json?project=myproject
- 列出爬虫
curl http://localhost:6800/listspiders.json?project=myproject
- 列出job
curl http://localhost:6800/listjobs.json?project=myproject
- 删除版本
curl http://localhost:6800/delversion.json -d project=myproject -d version=r99
- 删除项目
curl http://localhost:6800/delproject.json -d project=myproject
6. 参考文档
非常棒的一篇文档,是本文的主要参考:
http://blog.wiseturtles.com/posts/scrapyd.html
scrapy与scrapyd安装:
http://www.java123.net/v/1003419.html
- scrapyd的安装和基本使用
- Scrapyd的安装及使用(windows)
- scrapy和scrapyd-client的使用教程
- scrapyd的安装
- scrapyd支持的API 介绍和Scrapyd-client
- Scrapyd 使用
- windows 和 linux 安装 scrapyd 出现Not a directory site-packages/scrapyd-1.0.1-py2.7.egg/scrapyd/txapp.py
- windows 和 linux 安装 scrapyd 出现Not a directory site-packages/scrapyd-1.0.1-py2.7.egg/scrapyd/txapp.py
- Scrapy——scrapyd的使用
- 【scrapyd】windows下安装运行scrapyd
- 使用Scrapyd部署爬虫
- windows 7 使用 scrapyd 监控 scrapy的 spider
- Oracle11g的安装和基本使用
- Git的基本使用和安装
- Android Studio的安装和基本使用
- apktool的安装和基本使用
- Oracle11g的安装和基本使用
- Elasticsearch 的安装和基本使用
- 运营的企业,多关注商标注册
- mysqlbinlog flashback 5.6完全使用手册与原理
- context-param
- 网络编程(2)
- python安装第三方包packages
- scrapyd的安装和基本使用
- 2017 ACM-ICPC ECL-FINAL 部分代码
- MySQL异常:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止。
- 栈的基本操作及其应用 表达式求值
- 属性组合动画
- 对自执行函数的理解
- 剑指offer 编程题(17):二叉树的镜像
- String类对象的创建使用,雇员对象的操作
- reids 笔记