部署scrapy爬虫

pip install scrapyd

1、新建文件夹,用来放之后的项目文件

     在部署的项目文件夹里开启一个服务

     cmd管理员运行:

spiderd

默认的访问地址 是 http://localhost:6800/

如果启动成功,可以看到jobs里面的表格内容即是要部署上去的scrapy服务,现在还没部署

2、项目目录里,cmd输入 scrapyd  执行, 执行完成后新建一个dbs空文件夹, 用来存放爬虫项目的数据文件

3、安装scrapyd-client,这是一个类似打包工具,把我们的scrapy程序打包成egg后扔给scrapyd, 这是一个打包和部署的工具

pip install scrapy-client==1.1.0

也可以自行安装   下载地址:https://pypi.org/project/scrapyd-client/#files

执行命令, 安装完成后, 在python环境的scripts中会出现scrapyd-deploy无后缀文件, 这个scrapyd-deploy无后缀文件是启动文件, 在Linux系统下可以运行, 在windows下是不能运行的, 所以我们需要编辑一下使其在windows可以运行

C:\Program Files (x86)\Python36-32\Scripts中,新建一个scrapyd-deploy.bat空白文件,两个内容之间切记一个空格

@echo off

"C:\Program Files (x86)\Python36-32\python.exe" "C:\Program Files (x86)\Python36-32\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9

4、进入到你的爬虫项目中, 进入带有scrapy.cfg文件的目录, 执行scrapyd-deploy, 测试scrapyd-deploy是否可以运行, 如果出现以下提示则正常:

Unknown target: default

5、打开爬虫项目中的scrapy.cfg文件, 这个文件就是给scrapyd-deploy使用的将url这行代码解掉注释, 并且设置你的部署名称 

[settings]
default = huawei.settings

[deploy:hw]  # hw 自定义
url = http://localhost:6800/
project = huawei  # 项目名字

6、再次执行scrapyd-deploy -l启动服务, 可以看到设置的名称

7、开始打包前, 执行一个命令 scrapy list, 这个命令执行成功说明可以打包了, 如果没执行成功说明还有工作没完成

      注意执行 scrapy list命令的时候很有可能出现错误, 如果是python无法找到scrapy项目, 需要再scrapy项目里的settings.py配置文件里设置成python可识别路径

      # 将当前爬虫项目的setting.py增加

     import sys
     import os

     BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
     sys.path.insert(0, os.path.join(BASE_DIR, 'huawei'))

如果错误提示:远程计算机拒绝,说明你的scrapy项目有链接远程计算机,如链接数据库或者elasticsearch(搜索引擎)之类的,需要先将链接服务器或数据库服务启动或者启动你的scrapyd,执行scrapy list 命令返回了爬虫名称说明一切ok了

8、到此我们就可以开始打包scrapy项目到scrapyd了, 用命令结合scrapy项目中的scrapy.cfg文件设置来打包

执行打包命令: scrapyd-deploy 部署名称 -p 项目名称

如: scrapyd-deploy hw -p huawei

部署成功就可以去网页中127.0.0.1:6800 查看爬虫运行状态

9、运行爬虫

命令:
curl http://localhost:6800/schedule.json -d project=PROJECT_NAME -d spider=SPIDER_NAME

示例: curl http:
//localhost:6800/schedule.json -dproject=huawei -d spider=hw

 

其他:

停止爬虫
爬虫执行成功后,终端会给出该爬虫的 jobid 值,表示该爬虫,后面停止爬虫需要提供jobid
http://localhost:6800/jobs  可以查看jobid
curl http://localhost:6800/listjobs.json?project=huawei  可以获取当前jobid

切记:停止后如果代码需要修改,记得重新部署再执行。

删除scrapy项目

注意:一般删除scrapy项目,需要先执行命令停止项目下在远行的爬虫

curl http://localhost:6800/delproject.json -d project=scrapy项目名称


常用接口:

调度爬虫

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=jobid

列出项目

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

posted @ 2018-12-17 16:21  ronle  阅读(1300)  评论(0编辑  收藏  举报