如何在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使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
python实现多线程采集的2个代码例子
Jul 07 Python
实例讲解Python中函数的调用与定义
Mar 14 Python
Python正则捕获操作示例
Aug 19 Python
python实现微信自动回复功能
Apr 11 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
在PyCharm中三步完成PyPy解释器的配置的方法
Oct 29 Python
Python操作redis实例小结【String、Hash、List、Set等】
May 16 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
Jun 21 Python
Python 经典算法100及解析(小结)
Sep 13 Python
python用什么编辑器进行项目开发
Jun 17 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 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
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
JavaScript访问CSS属性的几种方式介绍
2014/07/21 Javascript
jQuery构造函数init参数分析
2015/05/13 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
[01:10]DOTA2次级职业联赛 - Fly战队宣传片
2014/12/01 DOTA
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
python生成指定长度的随机数密码
2014/01/23 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
python新手学习可变和不可变对象
2020/06/11 Python
Python如何批量生成和调用变量
2020/11/21 Python
党校学习思想汇报
2014/01/06 职场文书
机关单位工作失职检讨书
2014/11/20 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书