• 部署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-32Scripts中,新建一个scrapyd-deploy.bat空白文件,两个内容之间切记一个空格

    @echo off
    
    "C:Program Files (x86)Python36-32python.exe" "C:Program Files (x86)Python36-32Scriptsscrapyd-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

  • 相关阅读:
    fedora 27
    Python3 字符串操作
    python3 使用matplotlib画图问题
    Python3 移动文件——合集
    MySQL开放外部链接
    python之csv操作问题
    Question
    17-12-21
    python之List排序
    ubuntu版的sublime-text3输入中文问题
  • 原文地址:https://www.cnblogs.com/ronle/p/10132218.html
Copyright © 2020-2023  润新知