如何在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中遍历文件的3个方法
Sep 02 Python
探寻python多线程ctrl+c退出问题解决方案
Oct 23 Python
Python sys.argv用法实例
May 28 Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
Apr 26 Python
java判断三位数的实例讲解
Jun 10 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
基于Python生成个性二维码过程详解
Mar 05 Python
30行Python代码实现高分辨率图像导航的方法
May 22 Python
Django生成数据库及添加用户报错解决方案
Oct 09 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
学习php中的正则表达式
2014/08/17 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
jQuery实现分隔条左右拖动功能
2015/11/21 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
vue.js表格分页示例
2016/10/18 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
js实现左右轮播图
2020/01/09 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
Python基于pillow判断图片完整性的方法
2016/09/18 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
Python切图九宫格的实现方法
2019/10/10 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
酒店前台接待岗位职责
2013/12/03 职场文书
学习十八大精神心得体会
2013/12/31 职场文书
高中运动会入场词
2014/02/14 职场文书
教师远程培训感言
2014/03/06 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL