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:网络一直不好,几张比较直观的截图粘不上来,如遇不懂,可以参考我的上一篇博客
最新文章
- 学习笔记:MySQL操作初步
- mvn install
- CentOS7 安装与配置Ant
- elasticsearch-索引
- JavaScript 火的有点过头了,但又能火多久呢?
- cocos2d-x之value
- Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法
- ch2-vue实例(new Vue({}) 属性与方法 声明周期)
- 第一个简单的maven项目
- Docker之镜像
- 从注册表清理 IE10,IE11 用户代理字符串(UserAgent)中的垃圾信息
- 【Spring】5、利用自定义注解在SpringMVC中实现自定义权限检查
- [No0000150]VSVisualStudio提示图标,信号图标的含义
- CSS布局模型学习(Float、Position、Flexbox)
- intellij idea 重命名或复制一个项目(不用重启)
- QT写hello world 以及信号槽机制
- 使用UpdatePanel时FileUpload失效的问题!【FileUpload上传文件失败】
- Android--Apache HttpClient 的一些问题
- 在java中public void与public static void区别
- Mysql实战之索引
热门文章
- windows下安装了2个python,如何下载模块到不同的python中
- 数据库三,exec内置函数
- sqlplus登录时密码有特殊符号解决方法
- 发布Cocos2d-x的PC端程序
- 计算机网络基础笔记 运输层协议UDP/TCP
- Vue.js中 watch(深度监听)的最易懂的解释
- [Vue 牛刀小试]:第十三章 - Vue Router 基础使用再探(命名路由、命名视图、路由传参)
- numpy-np.ceil,np.floor,np.expand_dims方法
- ubuntu上编译和使用easy_profiler对C++程序进行性能分析
- 【Web开发】到底什么是短链接