从简单的scrapy项目到scrapyd管理以及SpiderKeeper可视化工具


目录

  • 安装环境

  • 部署scrapy项目

  • scrapyd来管理

  • SpiderKeeper管理

  • 参考API文档

  • 参考文章

  • [1] Scrapyd使用教程 https://www.jianshu.com/p/ddd28f8b47fb

  • [2]https://blog.csdn.net/weixin_39679004/article/details/83023948

  • [3]scrapyd参数https://www.jianshu.com/p/2a189127901a

  • [4]Scrapy可视化管理管理工具总结https://blog.csdn.net/mouday/article/details/84926296

  • [5]scrapy可视化管理工具spiderkeeper使用笔记https://blog.csdn.net/m0_38106113/article/details/81812135


  • 安装环境:

环境:windows、python3.6

pip3 install scrapyd-client

pip3 install scrapyd

官方文档:http://scrapyd.readthedocs.org/

pip3 install SpiderKeeper

  • 部署scrapy项目

scrapy startproject 项目名
在工作目录下输入这个命令、就可以开启简单的scrapy之旅了、由于本文主要是进行scrapy爬虫管理不在编写爬虫。

  • scrapyd来管理

1、命令行scrapyd、开启scrapyd服务、127.0.0.1:6800进入可视化界面

从简单的scrapy项目到scrapyd管理以及SpiderKeeper可视化工具_第1张图片

2、配置scrapy项目下的scrapy.cfg
    2.1、把原先注释掉的url那一行取消注释,这个就是我们要部署到目标服务器的地址。
    2.2、把[deploy]这里改为[deploy:demo],这里是命名为demo,命名可以任意怎么都可以,只要能标识出来项目就可以。
    2.3、通过scrapyd-deploy来将项目打包部署。
         有两种方法:
         方法一:
            在 C:\Users\username\AppData\Local\Programs\Python\Python36\Scripts下新建文件scrapyd-deploy.bat
如下:
-------------------------------------------------------------------------------------------
@echo off
"C:\Users\username\AppData\Local\Programs\Python\Python36\python.exe" "C:\Users\username\AppData\Local\Programs\Python\Python36\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
-------------------------------------------------------------------------------------------
         方法二:
            将scrapyd-deploy复制到scrapy项目目录下使用 python scrapyd-deploy demo -p xinlang同样可以。

从简单的scrapy项目到scrapyd管理以及SpiderKeeper可视化工具_第2张图片

未在scrapy项目的目录下

打包部署命令可以用

打包部署成功、前提是scrapyd服务打开中

Tip:OK、到这一步这个项目已经部署上去、具体细节参见[1]、下面就是一些scrapyd的API的使用。
# -*- coding: utf-8 -*-
import requests

ip = 'localhost'
port = 6800

def schedule(project, spider):
    url = f'http://{ip}:{port}/schedule.json'
    # url = 'http://{}:{}/schedule.json'.format(project, spider)
    params = {
        "project": project,
        "spider": spider
        # '_version': version
    }
    r = requests.post(url, data=params)

    return r.json()

def listjobs(project):
    url = f'http://{ip}:{port}/listjobs.json?project={project}'
    r = requests.get(url)
    return r.json()

def cancel(project, job):
    url = f'http://{ip}:{port}/cancel.json?project={project}&job={job}'
    r = requests.post(url)
    return r.json()

if __name__ == '__main__':
    # 部署命令: python scrapyd-deploy 127 -p lianjia --version v108
    project = 'lianjia'
    crawler_name = 'lj_crawler'
    # 启动项目
    # schedule(project, crawler_name)
    
    # # 获取所有jobs
    # j = listjobs(project)
    # print(j)

    # 停止项目
    job = '43b1441a3ff211e8825f58fb8457c654'
    j = cancel(project, job)
    print(j)
--------------------- 
作者:月月吃土 
来源:CSDN 
原文:https://blog.csdn.net/weixin_39679004/article/details/83023948 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

  • SpiderKeeper管理

  • 其实不止SpiderKeeper这个API优化、还有其他的比如scrapydweb详细见 [4]Scrapy可视化管理管理工具总结
1、spiderkeeper打开服务、访问localhost:5000可以看到可视化界面
2、发布项目需要在scrapy项目下“生蛋”、使用下面命令、然后将这个output.egg上传即可
-------------------------------------------------------------------------------------------

scrapyd-deploy --build-egg output.egg

-------------------------------------------------------------------------------------------
[5]scrapy可视化管理工具spiderkeeper使用笔记 有更详细的使用

  • 参考API

  • 英文:https://scrapyd.readthedocs.io/en/stable/
  • 中文:https://blog.csdn.net/mouday/article/details/84137292

 

你可能感兴趣的:(python)