scrapyd 是由scrapy 官方提供的爬虫管理工具,使用它我们可以非常方便地上传、控制爬虫并且查看运行日志。

参考官方文档:http://scrapyd.readthedocs.org/en/latest/api.html

使用scrapyd 和我们直接运行 scrapy crawl myspider 有什么区别呢?

scrapyd 同样是通过上面的命令运行爬虫的,不同的是它提供一个JSON web service 监听的请求,我们可以从任何一台可以连接到服务器的电脑发送请求安排爬虫运行,或者停止正在运行的爬虫。甚至,我们可以使用它提供的API上传新爬虫而不必登录到服务器上进行操作。

安装scrapyd

pip install scrapyd

参考文档:https://github.com/scrapy/scrapyd-client

运行scrapyd 服务

直接运行命令scrapyd即可:

scrapyd

运行scrapy出现-bash: scrapyd: command not found 错误的解决办法:

  • 进入 PYTHON_HOME\bin 目录查看 scrapyd 命令是否存在;
  • 为scrapyd命令创建软连接 ln -s PYTHON_HOME/bin/scrapyd /usr/bin/scrapyd

默认情况下scrapyd 监听 127.0.0.1:6800 端口,运行scrapyd 后在浏览器 http://localhost:6800/ 即可查看到当前可以运行的项目:

如果需要远程访问Web界面,需要修改一下 /etc/scrapyd/scrapyd.conf 配置,内容如下:

[scrapyd]
eggs_dir    = eggs
logs_dir    = logs
items_dir   =
jobs_to_keep = 5
dbs_dir     = dbs
max_proc    = 0
max_proc_per_cpu = 10
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0
http_port   = 6800
debug       = off
runner      = scrapyd.runner
application = scrapyd.app.application
launcher    = scrapyd.launcher.Launcher
webroot     = scrapyd.website.Root[services]
schedule.json     = scrapyd.webservice.Schedule
cancel.json       = scrapyd.webservice.Cancel
addversion.json   = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json  = scrapyd.webservice.ListSpiders
delproject.json   = scrapyd.webservice.DeleteProject
delversion.json   = scrapyd.webservice.DeleteVersion
listjobs.json     = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus

部署scrapy 项目

直接使用scrapyd-client提供的scrapyd-deploy工具。

pip install scrapyd-client

直接在项目根目录,修改工程目录下的 scrapy.cfg 文件:

[deploy:slaver1]   #默认情况下并没有slaver1,它只是一个名字,可以在配置文件中写多个名字不同的deploy
url = http://scrapyd.mydomain.com/api/scrapyd/  #要部署项目的服务器的地址
username = john  #访问服务器所需的用户名和密码(如果不需要密码可以不写)
password = secret

其中的username 和 password 用于在部署时验证服务器的HTTP basic authentication,须要注意的是这里的用户密码并不表示访问该项目须要验证,而是登录服务器用的。

下面是一个配置示例:

[settings]
default = tianmao.settings[deploy:slaver1]
url = http://localhost:6800/
project = tianmao[deploy:slaver2]
url = http://172.16.250.238:6800/
project = tianmao

部署项目到服务器

直接在项目根目录,执行下面命令:

scrapyd-deploy slaver1 -p tianmao

部署操作会打包你的当前项目,如果当前项目下有setup.py文件,就会使用它,没有的会就会自动创建一个。(如果后期项目需要打包的话,可以根据自己的需要修改里面的信息,也可以暂时不管它).从返回的结果里面,可以看到部署的状态,项目名称,版本号和爬虫个数,以及当前的主机名称.

查看项目spider

通过scrapyd-deploy -l 查看当前目录下的可以使用的部署方式(target)。

scrapy list
scrapyd-deploy -l

列出服务器上所有的项目,检查tutorial_deploy是否已经部署上去了。

scrapyd-deploy -L slaver1
tianmao

API

scrapyd的web界面比较简单,主要用于监控,所有的调度工作全部依靠接口实现。

参考官方文档:http://scrapyd.readthedocs.org/en/stable/api.html

开启爬虫 schedule

curl http://localhost:6800/schedule.json -d project=tianmao -d spider=tm

注意:执行时 cd 到项目根目录执行

C:\Users\pjli\Desktop\pyworks\tianmao>curl http://localhost:6800/schedule.json -d project=tianmao -d spider=tm
{"node_name": "1000-PJLI", "status": "ok", "jobid": "4bbdd7d494f011ea99cf54e1ad47f97c"}

停止 cancel

curl http://localhost:6800/cancel.json -d project=tianmao -d job=e09e09c694f411ea8ec254e1ad47f97c

列出爬虫

curl http://localhost:6800/listspiders.json?project=tianmao

删除项目

curl http://localhost:6800/delproject.json -d project=tianmao

更新

对于scrapyd默认项目(即是启动scrapyd命令后看到的default项目):

  • 只有在scrapy项目里启动scrapyd命令时才有默认项目,默认项目就是当前的scrapy项目
  • 如果在非scrapy项目下执行scrapyd, 是看不到default的

使用scrapyd 管理爬虫相关推荐

  1. Scrapyd发布爬虫的工具

    Scrapyd Scrapyd是部署和运行Scrapy.spider的应用程序.它使您能够使用JSON API部署(上传)您的项目并控制其spider. Scrapyd-client Scrapyd- ...

  2. scrapyd部署爬虫项目到LINUX服务器

    1,首先把scrapy爬虫项目上传到服务器 我的服务器架设在公司内网里.所以在这里使用WinSCP作为上传工具. 2,修改项目的配置文件scrapy.cfg 给爬虫项目指定分组,具体方法是在deplo ...

  3. 利用scrapyd管理scrapy的多个爬虫

    说明:环境准备基于 Ubuntu16.04 一.安装 sudo pip install scrapyd sudo pip install scrapyd-client 二.验证 命令行输入:scrap ...

  4. scrapyd部署爬虫项目

    项目的环境 windows10系统 python版本:3.6.5 1.安装scrapy项目需要使用到的包 -- scrapyd 打开cmd命令行,输入pip install scrapyd ,回车 安 ...

  5. 爬虫教程( 2 ) --- 爬虫框架 Scrapy、Scrapy 实战

    From:https://piaosanlang.gitbooks.io/spiders/content/ scrapy-cookbook :https://scrapy-cookbook.readt ...

  6. 一个scrapy框架的爬虫(爬取京东图书)

    我们的这个爬虫设计来爬取京东图书(jd.com). scrapy框架相信大家比较了解了.里面有很多复杂的机制,超出本文的范围. 1.爬虫spider tips: 1.xpath的语法比较坑,但是你可以 ...

  7. Python爬虫开发从入门到实战

    Python爬虫开发从入门到实战(微课版) 第1章 绪论 爬虫的主要目的是获取网页内容并解析.只要能达到这个目的,用什么方法都没有问题. 关于获取网页,本书主要介绍了Python的两个第三方模块,一个 ...

  8. python爬取京东书籍_一个scrapy框架的爬虫(爬取京东图书)

    我们的这个爬虫设计来爬取京东图书(jd.com). scrapy框架相信大家比较了解了.里面有很多复杂的机制,超出本文的范围. 1.爬虫spider tips: 1.xpath的语法比较坑,但是你可以 ...

  9. 小白也能看懂!教你如何快速搭建实用的爬虫管理平台

    写在前面:本篇文章内容较多,涉及知识较广,读完需要大约 20 分钟,请读者耐心阅读. 如今大多数企业都离不开爬虫,它是获取数据的一种有效方式.但是对爬虫有着规模量级要求的企业或个人需要同时处理不同类别 ...

最新文章

  1. SringMVC从入门到源码,这一篇就够
  2. java内存规范_Java内存模型-jsr133规范介绍
  3. 机器学习高阶认识(一): 机器学习假设与迁移学习
  4. 【JAVA编码专题】深入分析 Java 中的中文编码问题
  5. 015. Object event handling debug - Parameter COM_IOITF_DEBUG
  6. php恒等符,php学习笔记(三)操作符与控制结构
  7. 基于直方图处理的图像增强
  8. Logstash入门简介
  9. Java学习笔记--字符串和文件IO
  10. \Process(sqlservr)\% Processor Time 计数器飙高
  11. 将项目打成war包并用tomcat部署的方法,步骤及注意点
  12. fastreport调用frf文件直接打印_打印日志时 Logback 内部都做了些什么
  13. hdu 1394 Minimum Inversion Number(树状数组)
  14. vue利用Bscroll开发一个城市列表组件,带右侧字母导航栏
  15. ES6基本知识及API
  16. CSP_201712-1_最小差值(Java)
  17. 计算机软件——操作系统
  18. 数字孪生数字汽车风洞技术研究案例
  19. 零数科技成功通过CMMI3级认证,软件研发能力获国际认可
  20. 山西经济林栽培技术章节考试题

热门文章

  1. 基于特性(Attribute)的实体属性验证方案设计
  2. FormulA基金会理事子谦:未来99%的资产都将登记在区块链上
  3. 「前端工程化」从0-1搭建react,ts脚手架(1.2w字超详细教程)
  4. connection reset案例的穿越之旅
  5. 免疫性属于计算机病毒特征码,基于免疫和代码重定位的计算机病毒特征码提取与检测方法.doc...
  6. 老师生日c语言,C语言求解-小明和小强都是张老师的学生张老师的生日是M月N日.doc...
  7. 霍尔效应测磁场matlab实现代码
  8. Linux cpuidle framework(2)_cpuidle core
  9. vue10-class数组样式绑定
  10. socket多人聊天室c语言,一分钟实现网页多人聊天室【Socket.IO】