scrapy项目部署

scrapyd部署工具介绍

  • scrapyd是一个用于部署和运行scrapy爬虫的程序,它由 scrapy 官方提供的。它允许你通过JSON API来部署爬虫项目和控制爬虫运行

所谓json api本质就是post请求的webapi

  • 选择一台主机当做服务器,安装并启动 scrapyd 服务。再这之后,scrapyd 会以守护进程的方式存在系统中,监听爬虫地运行与请求,然后启动进程来执行爬虫程序。

环境安装

  • scrapyd服务:

pip install scrapyd

  • scrapyd客户端:

pip install scrapyd-client

​ 一定要安装较新的版本10以上的版本,如果是现在安装的一般都是新版本

启动scrapyd服务

  • 打开终端在scrapy项目路径下 启动scrapyd的命令: scrapyd

  • scrapyd 也提供了 web 的接口。方便我们查看和管理爬虫程序。默认情况下 scrapyd 监听 6800 端口,运行 scrapyd 后。在本机上使用浏览器访问 http://localhost:6800/地址即可查看到当前可以运行的项目。

  • 点击job可以查看任务监控界面

scrapy项目部署

配置需要部署的项目
  • 编辑需要部署的项目的scrapy.cfg文件(需要将哪一个爬虫部署到scrapyd中,就配置该项目的该文件)

[deploy:部署名(部署名可以自行定义)]
url = http://localhost:6800/
project = 项目名(创建爬虫项目时使用的名称) username = dream # 如果不需要用户名可以不写
password = 123456 # 如果不需要密码可以不写
部署项目到scrapyd
  • 同样在scrapy项目路径下执行如下指令:

    #pycharm
    scrapyd-deploy 部署名(配置文件中设置的名称) -p 项目名称
  • 部署成功之后就可以看到部署的项目

  • 使用以下命令检查部署爬虫结果:

    • #pycharm
      scrapyd-deploy -L 部署名

管理scrapy项目

指令管理
  • 安装curl命令行工具

    • window需要安装
    • linux和mac无需单独安装
  • window安装步骤:

  • 启动项目:

    curl http://localhost:6800/schedule.json -d project=项目名 -d spider=爬虫名
    • 返回结果:注意期中的jobid,在关闭项目时候会用到

      • {"status": "ok", "jobid": "94bd8ce041fd11e6af1a000c2969bafd", "node_name": "james-virtual-machine"}
  • 关闭项目:

    • curl http://localhost:6800/cancel.json -d project=项目名 -d job=项目的jobid
  • 删除爬虫项目:

    • curl http://localhost:6800/delproject.json -d project=爬虫项目名称
requests模块控制scrapy项目
import requests

# 启动爬虫
url = 'http://localhost:6800/schedule.json'
data = {
'project': 项目名,
'spider': 爬虫名,
}
resp = requests.post(url, data=data) # 停止爬虫
url = 'http://localhost:6800/cancel.json'
data = {
'project': 项目名,
'job': 启动爬虫时返回的jobid,
}
resp = requests.post(url, data=data)

最新文章

  1. Mono产品生命周期
  2. Beta工作比例(Transcend)
  3. powershell脚本,命令行参数传值,并绑定变量的例子
  4. c# 中几个关于string问题
  5. python基础(内置函数+文件操作+lambda)
  6. linux file命令小记
  7. USACO Arithmetic Progressions 【构造等差数列】
  8. 2014年度辛星解读css第四节
  9. Python数据描述与分析
  10. MySQL-代码自动补全工具
  11. 机器学习入门之python实现图片简单分类
  12. React browserHistory.push()传参
  13. python3 aes加解密
  14. EntityFrameworkCore操作记录
  15. DLL对象类型转换
  16. 启动DELPHI2010出现 EditorLineEnds.ttr 错误的解决方法
  17. 016 Java中的动态代理
  18. jquery.dataTables的用法
  19. 歌手右侧快速入口ABCD....
  20. Spring是什么+控制反转和依赖注入

热门文章

  1. error Unnecessary return statement no-useless-return
  2. Pycharm 2022.2激活码到2023年7月,亲测有效
  3. PyCharm如何实现控制台换行显示
  4. react 二级路由嵌套
  5. 【实验】B站资源免费下载技巧you-get
  6. BlendCAC: A Smart Contract Enabled Decentralized Capability-Based Access Control Mechanism for the IoT
  7. 网站提示:You Don’t Have Permission To Access
  8. postgresql生产环境三大难题
  9. jenkins+stf+airtest实现移动端自动化测试平台
  10. eclipse设置UTF-8(字符编码集)所有方式