如何在django中运行scrapy框架


Posted in Python onApril 22, 2020

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})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
TensorFlow实现卷积神经网络
May 24 Python
tensorflow 获取模型所有参数总和数量的方法
Jun 14 Python
在pycharm上mongodb配置及可视化设置方法
Nov 30 Python
python生成器用法实例详解
Nov 22 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
Python HTTP下载文件并显示下载进度条功能的实现
Apr 02 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
基于python实现操作git过程代码解析
Jul 27 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 Python
pycharm 实现复制一行的快捷键
Jan 15 Python
TensorFlow实现批量归一化操作的示例
Apr 22 #Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
Apr 22 #Python
python实现四人制扑克牌游戏
Apr 22 #Python
如何在django中实现分页功能
Apr 22 #Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 #Python
python实现扑克牌交互式界面发牌程序
Apr 22 #Python
文件上传服务器-jupyter 中python解压及压缩方式
Apr 22 #Python
You might like
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
初学者AngularJS的环境搭建过程
2017/10/27 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
详解Python进程间通信之命名管道
2017/08/28 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Python使用mongodb保存爬取豆瓣电影的数据过程解析
2019/08/14 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
Python如何安装第三方模块
2020/05/28 Python
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
解释i节点在文件系统中的作用
2013/11/26 面试题
个人简历自我鉴定
2013/10/11 职场文书
《理想》教学反思
2014/02/17 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
爱晚亭导游词
2015/02/09 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
如何用JS实现简单的数据监听
2021/05/06 Javascript
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python