年前的时候采用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":<项目名称>})
注意:
  删除之前需要停止爬虫,才可以再次删除

scrapy 项目通过scrapyd部署的更多相关文章

  1. 第三百七十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目

    第三百七十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目 scrapyd模块是专门用于部署scrapy项目的,可以部署和管理scrapy项目 下载地址:h ...

  2. 五十一 Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目

    scrapyd模块是专门用于部署scrapy项目的,可以部署和管理scrapy项目 下载地址:https://github.com/scrapy/scrapyd 建议安装 pip3 install s ...

  3. scrapy项目部署

    什么是scrapyd Scrapyd是部署和运行Scrapy.spider的应用程序.它使您能够使用JSON API部署(上传)您的项目并控制其spider. 特点: 可以避免爬虫源码被看到. 有版本 ...

  4. Scrapyd部署爬虫

    Scrapyd部署爬虫 准备工作 安装scrapyd: pip install scrapyd 安装scrapyd-client : pip install scrapyd-client 安装curl ...

  5. Python 爬虫之 Scrapy 分布式原理以及部署

    Scrapy分布式原理 关于Scrapy工作流程 Scrapy单机架构 上图的架构其实就是一种单机架构,只在本机维护一个爬取队列,Scheduler进行调度,而要实现多态服务器共同爬取数据关键就是共享 ...

  6. 爬虫部署 --- scrapyd部署爬虫 + Gerapy 管理界面 scrapyd+gerapy部署流程

    ---------scrapyd部署爬虫---------------1.编写爬虫2.部署环境pip install scrapyd pip install scrapyd-client 启动scra ...

  7. scrapyd部署、使用Gerapy 分布式爬虫管理框架

    Scrapyd部署爬虫项目 GitHub:https://github.com/scrapy/scrapyd API 文档:http://scrapyd.readthedocs.io/en/stabl ...

  8. 创建第一个Scrapy项目

    d:进入D盘 scrapy startproject tutorial建立一个新的Scrapy项目 工程的目录结构: tutorial/ scrapy.cfg # 部署配置文件 tutorial/ # ...

  9. Tomcat 利用server.xml进行其他盘符的其他项目映射的部署以及JSP引用其他盘符的图片(虚拟目录及虚拟路径)

    Tomcat 利用server.xml进行项目映射的部署 2013-07-17 15:14 12843人阅读 评论(4) 收藏 举报  分类: web 开发(5)  版权声明:本文为博主原创文章,欢迎 ...

随机推荐

  1. L313 珊瑚裸鼠灭绝

    This week the Australian government declared the extinction of a tiny rodent called Bramble Cay melo ...

  2. VOOKI:一款免费的Web应用漏洞扫描工具

    Vooki是一款免费且用户界面友好的Web应用漏扫工具,它可以轻松地为你扫描任何Web应用并查找漏洞.Vooki主要包括三个部分,Web应用扫描器,Rest API扫描器以及报告.Web应用扫描器​V ...

  3. 利用python实现电影推荐

    "协同过滤"是推荐系统中的常用技术,按照分析维度的不同可实现"基于用户"和"基于产品"的推荐. 以下是利用python实现电影推荐的具体方法 ...

  4. MAVEN JDK版本配置

    使用maven的时候,默认会使用1.5版本的JDK,并且也是编译成1.5的,我的电脑里面用的JDK是1.7的,1.8也出来了,没理由还用1.5的吧!所以我手动改成了1.7,郁闷的是,每次 maven- ...

  5. 线程安全的"懒汉"单例模式

    所谓线程不安全实际上就是一段代码在同一时间被两个线程同时执行,导致运行结果与单个线程运行结果不相同 新建一个单例模式类和一个多线程测试类 public class TestSingleTon impl ...

  6. Spring REST API

    RPC是面向服务的,并关注与行为和动作:而REST是面向资源的,强调描述应用程序的事务的名词.REST将资源的状态以最适合客户端或服务端的形式从服务器端转移到客户端. REST Representat ...

  7. springmvc实现json交互 -requestBody和responseBody

    json数据交互 1.为什么要进行json数据交互 json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. 2. ...

  8. idea 中新建Servlet

    本文转载自 :itellij idea创建javaWeb以及Servlet简单实现  一.创建并设置javaweb工程 1.创建javaweb工程File --> New --> Proj ...

  9. github上DQN代码的环境搭建,及运行(Human-Level Control through Deep Reinforcement Learning)conda配置

    最近师弟在做DQN的实验,由于是强化学习方面的东西,正好和我现在的研究方向一样于是我便帮忙跑了跑实验,于是就有了今天的这个内容. 首先在github上进行搜寻,如下图: 发现第一个星数最多,而且远高于 ...

  10. jvm内存增长问题排查简例

    jvm内存增长问题排查 排查个jvm 内存占用持续增加的问题,纪录一下,引以为戒. 运维发现应用jvm内存占用在发布后回落,然后持续增高,,dump后分析一下: 占内存的大部分是这种名字相似的bean ...