年前的时候采用scrapy 爬取了某网站的数据,当时只是通过crawl 来运行了爬虫,现在还想通过持续的爬取数据所以需要把爬虫部署起来,查了下文档可以采用scrapyd来部署scrapy项目,scrapyd主要分两部分,一部分是服务器端(scrapyd),一个是客户端(scrapyd-client),服务器端主要聊调度和运行scrapy,客服端主要用于发布scrapy项目。

一.scrapyd 环境搭建

  1.安装scrapyd可以采用pip和源码的两种方式安装

  i.安装scrapyd

pip install scrapyd

 ii.安装scrapyd-client

pip install scrapyd-client

 2.运行scrapyd;

  i.首先我们需要创建一个目录,用于存储发布我们部署的项目;

  ii.执行scrapyd,运行启动,启动成功访问http://127.0.0.1:6800/,显示scrapyd界面,这样scrapyd安装成功;

  iii.此时scrapyd只能在本机访问,我们需要去修改配置文件,运行所有的ip都可以访问。配置文件的路径在site-packages\scrapyd目录下,windows配置文件名字是default_scrapyd.conf,把bind_address改成0.0.0.0 这样就可以所有的地址都可以访问。

3.配置scrapyd-client。

  i.安装完成scrapyd-client,我们要使用scrapyd-deploy来发布我们项目,但是在window运行scrapyd-deploy会出问题,这时候我们需要在python安装目录Scripts新建一个bat脚本

@echo off
"D:\Program Files\Python\Python35\python.exe" "D:\Program Files\Python\Python35\Scripts\scrapyd-deploy" %*

说明:前面是python.exe 目录,中间是 scrapyd-deploy 目录,%*代表输入的参数。

以上我们就把scrapyd的服务器端和客户端配置完成了,我们来发布下自己的项目。

二.scrapy 项目发布 

  1.scrapyd安装成功,打开http://localhost:6800/ 可以看到scrapyd的一个页面,包括三个选项,jobs(任务),logs(日志),Documentation;

  2.点击job可以看到目前运行的任务。

  3.发布项目到scrapyd

  i.配置scrapy工程scrapy.cfg文件

[settings]
default = boss.settings [deploy:boss] #如果多个项目,这里可以添加一个别名
url = http://localhost:6800/ #这里设置scrapyd的服务器地址;
project = boss

ii.通过scrapyd-deploy发布项目,需要进入scrapy的工程目录进行发布

scrapyd-deploy boss -p boss
语法:scrapyd-deploy <部署别名> -p 项目名称

发布成功以后,会返回以下结果。

此时会在scrapyd目录下创建一个boss目录,把我们的scrapy项目打成一个egg的压缩文件。

三.启动、停止爬虫

  这个时候我们需要调用scrapyd API来运行我们的爬虫。

  1.启动爬虫

curl http://localhost:6800/schedule.json -d project=boss -d spider=zhaopin
语法:
    curl http://<ip>:6800/schedule.json -d project=<项目名称> -d spider=<spider名称>

以下就是项目发布成功。

也可以在scrapyd管理界面看到项目的运行情况

  2.停止爬虫

curl http://localhost:6800/cancel.json -d project=boss -d job=6700d2d43d3c11e8b1eaf8db8a950d02
语法:
  curl http://<ip>:6800/cancel.json -d project=<项目名称> -d job=job_id(项目运行成功会返回ID)

  3.常用的scrapyd API

.获取状态
http://127.0.0.1:6800/daemonstatus.json
.获取项目列表
  http://127.0.0.1:6800/listprojects.json .获取项目下已发布的爬虫列表
  http://127.0.0.1:6800/listspiders.json?project=<项目名称> .获取项目下已发布的爬虫版本列表
  http://127.0.0.1:6800/listversions.json?project=<项目名称> .获取爬虫运行状态
  http://127.0.0.1:6800/listjobs.json?project=<项目名称>
.启动服务器爬虫
  http://localhost:6800/schedule.json (post方式,data={"project":<项目名称>,"spider":<spider名称>}) .删除某一版本爬虫
  http://127.0.0.1:6800/delversion.json (post方式,data={"project":<项目名称>,"version":<版本号>}) .删除某一工程,包括该工程下的各版本爬虫
  http://127.0.0.1:6800/delproject.json(post方式,data={"project":<项目名称>})
注意:
  删除之前需要停止爬虫,才可以再次删除

最新文章

  1. HTML5新特性——HTML 5 Canvas vs. SVG
  2. UVALive 3644 X-Plosives
  3. Java 利用Apache Commons Net 实现 FTP文件上传下载
  4. Codeforces Round #127 (Div. 2)
  5. C# 导出 Excel
  6. mysql cluster 安装配置方案
  7. Jquery JSOPN在WebApi中的问题
  8. .net 企业管理系统快熟搭建框架
  9. Lucence
  10. [面试没答上的问题1]http请求,请求头和响应头都有什么信息?
  11. 【BZOJ2809】【APIO2012】Dispatching(左偏树)
  12. mongoDB 其他数据类型
  13. 基于335X平台的UBOOT中交换芯片驱动移植
  14. 洛谷P2868 [USACO07DEC]观光奶牛Sightseeing Cows(01分数规划)
  15. PHP is much better than you think
  16. 在1-10中选择一个数,输出x+xx+xxx+xxx....x之和,如:数字为2,则2+22=24
  17. Unity Standard Assets Example Project
  18. 数链剖分(树的统计Count )
  19. 【总结】牛客职播第九期:您的美团点评offer已送到门口,快来与我们一起影响世界!
  20. ubuntu 添加用户到已存在的组

热门文章

  1. 20165214 实验一 Java开发环境的熟悉
  2. php优秀框架codeigniter学习系列——common.php
  3. Beta阶段冲刺---Day2
  4. 记第十四届省赛参赛体会&amp;第十三届
  5. Spring REST API
  6. MySQL笔记(2)
  7. 10.2.0.5环境dg测试logminer挖掘日志分析
  8. shell脚本-预定义常量
  9. tomcat:利用tomcat部署war包格式的项目
  10. kafka安装和部署