如何在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})

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

(0)

相关推荐

  • python scrapy爬虫代码及填坑

    涉及到详情页爬取 目录结构: kaoshi_bqg.py import scrapy from scrapy.spiders import Rule from scrapy.linkextractors import LinkExtractor from ..items import BookBQGItem class KaoshiBqgSpider(scrapy.Spider): name = 'kaoshi_bqg' allowed_domains = ['biquge5200.cc'] s

  • Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例

    本文实例讲述了Python Scrapy框架:通用爬虫之CrawlSpider用法.分享给大家供大家参考,具体如下: 步骤01: 创建爬虫项目 scrapy startproject quotes 步骤02: 创建爬虫模版 scrapy genspider -t quotes quotes.toscrape.com 步骤03: 配置爬虫文件quotes.py import scrapy from scrapy.spiders import CrawlSpider, Rule from scrap

  • python爬虫库scrapy简单使用实例详解

    最近因为项目需求,需要写个爬虫爬取一些题库.在这之前爬虫我都是用node或者php写的.一直听说python写爬虫有一手,便入手了python的爬虫框架scrapy. 下面简单的介绍一下scrapy的目录结构与使用: 首先我们得安装scrapy框架 pip install scrapy 接着使用scrapy命令创建一个爬虫项目: scrapy startproject questions 相关文件简介: scrapy.cfg: 项目的配置文件 questions/: 该项目的python模块.之

  • python3 Scrapy爬虫框架ip代理配置的方法

    什么是Scrapy? Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍.所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板.对于框架的学习,重点是要学习其框架的特性.各个功能的用法即可. 一.背景 在做爬虫项目的过程中遇到ip代理的问题,网上搜了一些,要么是用阿里云的ip代理,要么是搜一些网上现有的ip资源,然后配置在setting文件中.这两个方法都存在一些问题. 1.阿里云ip代理方法,网上大

  • scrapy数据存储在mysql数据库的两种方式(同步和异步)

    方法一:同步操作 1.pipelines.py文件(处理数据的python文件) import pymysql class LvyouPipeline(object): def __init__(self): # connection database self.connect = pymysql.connect(host='XXX', user='root', passwd='XXX', db='scrapy_test') # 后面三个依次是数据库连接名.数据库密码.数据库名称 # get c

  • Scrapy框架实现的登录网站操作示例

    本文实例讲述了Scrapy框架实现的登录网站操作.分享给大家供大家参考,具体如下: 一.使用cookies登录网站 import scrapy class LoginSpider(scrapy.Spider): name = 'login' allowed_domains = ['xxx.com'] start_urls = ['https://www.xxx.com/xx/'] cookies = "" def start_requests(self): for url in sel

  • 详解Python网络框架Django和Scrapy安装指南

    Windows 上的Django安装 如今Python使用的范围越来越广,所以学会关于它比较火的网络框架非常有必要.要安装Django,首先要知道你电脑上的python是哪个版本的,至于如何安装python的解释器环境此处不做介绍,网上的教程很多. Django 是一个 Python Web 框架,因此需要在您的机器上安装 Python.本文是基于Python3.6的环境安装介绍的. 要查看你电脑上的python版本,使用以下指令: python --version 要安装django,还要安装

  • VirtualBox CentOS7.7.1908 Python3.8 搭建Scrapy开发环境【图文教程】

    环境 VirtualBox_v6.0.14 CentOS_v7.1908 Python_v3.8.0 MongoDB_v3.2.22 pip_v19.3.1 windows Pycharm-2019.2.3企业版(社区版不支持远程连接linux开发),需激活使用系统自带Python2.7.5不做处理,尝试过pyenv安装3.8,但是到安装scrapy的时候报错不断,最终又卸载了pyenv重新手动编译安装. 安装CentOS 为了保证虚拟机和宿主机能互相访问和正常通信,采用2虚拟网卡的配置方式.

  • 如何在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项目部署到当前工程:scr

  • 如何在Django中使用聚合的实现示例

    在本文中,我想向您介绍如何在Django中使用聚合,聚合的含义是"内容相关项的集合,以便它们可以显示或链接到".在Django中,我们使用的情况例如: 用于在Django模型的数据库表中查找列的"最大值","最小值". 用于基于列在数据库表中查找记录的"计数". 用于查找一组相似对象的"平均值"值. 还用于查找列中的值的总和. 在大多数情况下,我们对数据类型为"整数","浮点数

  • 如何在django中添加日志功能

    官方文档 猛戳这里 在settings中配置以下代码 #LOGGING_DIR 日志文件存放目录 LOGGING_DIR = "logs" # 日志存放路径 if not os.path.exists(LOGGING_DIR): os.mkdir(LOGGING_DIR) import logging LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { #格式化器 'standard'

  • 如何在Golang中运行JavaScript

    我们知道,在 Python 里面,如果你要运行一段 JavaScript,你可以使用execJS这种第三方库.那么在 Golang 里面,你想运行 JavaScript 的时候又应该怎么办呢? 最近我发现一个使用 Golang 开发的 JavaScript 引擎:Goja[1].它实现了ES 5.1的所有语法和大部分的ES 6语法,比 Python 的execJS要厉害得多.在一定程度上和特定场景下,它可以完全替代Chrome 的 V8引擎. 我们来看看如使用它运行一段 JavaScript 代

  • 如何在JavaScript中运行.NET Core代码详情

    目录 一.前言 二.DotNetJS 三.Demo 1. 创建项目 2. 实现C#代码 3. 实现JS代码 4. 运行效果 四.结论 一.前言 在.NET Core中运行JavaScript代码,目前已经有很多实现方案. 但是,如果你希望在纯JavaScript环境中运行.NET Core代码呢? 那么,DotNetJS可能对你有所帮助. 二.DotNetJS DotNetJS可以将C#项目编译为与任何环境兼容的单文件JavaScript库,无论是Web浏览器,Node.js还是自定义限制空间,

  • 详解如何在Apache中运行Python WSGI应用

    在生产环境上,一般会使用比较健壮的Web服务器,如Apache来运行我们的应用.如果我们的Web应用是采用Python开发,而且符合WSGI规范,比如基于Django,Flask等框架,那如何将其部署在Apache中呢?本文中,我们就会介绍如何使用Apache模块mod_wsgi来运行Python WSGI应用. 安装mod_wsgi 我们假设你已经有了Apache和Python环境,在Linux或者Mac上,那第一步自然是安装.在Ubuntu或Debian环境中,你可以使用apt-get命令来

  • 如何在Django中添加没有微秒的 DateTimeField 属性详解

    前言 今天在项目中遇到一个Django的大坑,一个很简单的分页问题,造成了数据重复.最后排查发现是DateTimeField 属性引起的. 下面描述下问题,下面是我需要用到的一个 Task Model 基本定义: class Task(models.Model): # ...... 省略了其他字段 title = models.CharField(max_length=256, verbose_name=u'标题') created_at = models.DateTimeField(auto_

  • 详解python如何在django中为用户模型添加自定义权限

    django自带的认证系统能够很好的实现如登录.登出.创建用户.创建超级用户.修改密码等复杂操作,并且实现了用户组.组权限.用户权限等复杂结构,使用自带的认证系统就能帮助我们实现自定义的权限系统达到权限控制的目的. 在django中默认情况下,syncdb运行时安装了django.contrib.auth,它会为每个模型创建默认权限,如foo.can_change,foo.can_delete和foo.can_add.要向模型添加自定义权限,可以添加类Meta:在模型下,并在其中定义权限,如此处

  • 如何在django中实现分页功能

    1.在html页面中导入js文件和css文件 <link rel="stylesheet" href="../../../static/css/jquery.pagination.css" rel="external nofollow" > <script type="text/javascript" src="../../../static/js/jquery-1.12.4.min.js"

  • 如何在Django中设置定时任务的方法示例

    Django 作为后端Web开发框架,有时候我们需要用到定时任务来或者固定频次的任务来执行某段代码,这时我们就要用到Celery了.Django中有一个中间件:Django-celery 环境: Python 3.6 Django为小于1.8版本 Celery为3.1版本 第一步安装:django-celery pip install django-celery 第二步:配置celery和任务 创建测试django环境: django-admin.py createproject test dj

随机推荐