• django--中运行scrapy框架


    1.新建一个django项目,

    2.前端展示一个按钮

    <form action="/start/" method="POST">
            {% csrf_token %}
            <input type="submit" value="启动爬虫">
    </form>

    3.在django项目的根目录创建scrapy项目

    4.cmd命令行运行:scrapyd  启动服务

    5.将scrapy项目部署到当前工程:scrapyd-deploy 爬虫名称 -p 项目名称

    6.views.py

    # 首页
    def index(request):
        return render(request,'index.html',locals())
    
    def start(request):
        if request.method == 'POST':
            # 启动爬虫
            url = 'http://localhost:6800/schedule.json'
            data = {'project': 'ABCkg', 'spider': 'abckg'}
            print(requests.post(url=url, data=data))
            return JsonResponse({'result':'ok'})

    7.在本地6800端口点击jobs当前爬虫项目就在运行了。

    8.写一个按钮,点击停止scrapy爬虫

    def stop(request):
        if request.method == 'POST':
            # 停止爬虫
            url = 'http://127.0.0.1:6800/cancel.json'
            data={"project":'ABCkg','job':'b7fe64ee7ad711e9b711005056c00008'}
            print(requests.post(url=url, data=data))
            return JsonResponse({'result':'stop'})

    总结:

    ----------------scrapyd 管理----------------------
    1、获取状态

    http://127.0.0.1:6800/daemonstatus.json


    2、获取项目列表

    http://127.0.0.1:6800/listprojects.json


    3、获取项目下已发布的爬虫列表

    http://127.0.0.1:6800/listspiders.json?project=myproject


    4、获取项目下已发布的爬虫版本列表
    http://127.0.0.1:6800/listversions.json?project=myproject


    5、获取爬虫运行状态

    http://127.0.0.1:6800/listjobs.json?project=myproject


    6、启动服务器上某一爬虫(必须是已发布到服务器的爬虫)
    http://localhost:6800/schedule.json
    (post方式,data={"project":myproject,"spider":myspider})


    7、删除某一版本爬虫

    http://127.0.0.1:6800/delversion.json -d project=项目名 -d versions
    (post方式,data={"project":myproject,"version":myversion})


    8、删除某一工程,包括该工程下的各版本爬虫

    http://127.0.0.1:6800/delproject.json
    (post方式,data={"project":myproject})

    9、取消爬虫
    http://127.0.0.1:6800/cancel.json
    (post方式,data={"project":myproject,'job':myjob})

    PS:网络一直不好,几张比较直观的截图粘不上来,如遇不懂,可以参考我的上一篇博客

  • 相关阅读:
    【python】一个文件内容写入另一个
    【Linux】批量修改权限
    【Git】git add git commit
    赌博游戏
    输出斐波那契数列前20项,每输出5个数换行
    Java线程的几种可用状态
    Java创建线程的方式
    Java虚拟机
    判断对象oStringObject是否为String
    throw跟throws关键字
  • 原文地址:https://www.cnblogs.com/lutt/p/10895317.html
Copyright © 2020-2023  润新知