Django集成Scrapyd实现爬虫可视化管理
本文介绍如何在Django项目中通过Scrapyd服务实现爬虫的可视化管理。涵盖创建Django与Scrapy项目、部署爬虫、通过API启动/停止任务及查看状态等完整流程,并提供关键代码示例与接口说明。
Django与Scrapyd集成步骤
首先,新建一个Django项目。
在前端页面添加一个按钮用于触发操作。
<form action="/start/" method="POST">
{% csrf_token %}
<input type="submit" value="启动爬虫">
</form>
在Django项目的根目录下创建Scrapy项目。
通过命令行执行命令:scrapyd 启动服务。
将Scrapy项目部署到当前工程中,命令格式为:scrapyd-deploy 爬虫名称 -p 项目名称。
接下来编写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'})
在本地6800端口点击jobs,当前爬虫项目即开始运行。
编写一个按钮,点击即可停止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 API接口说明
总结:
----------------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})
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









