Scrapyd

1. 简介

1.1 定义

  • scrapyd是一个用于部署和运行scrapy爬虫的程序,它允许你通过JSON API部署爬虫项目和控制爬虫运行,scrapyd是一个守护进程,监听爬虫的运行和请求,然后启动进程来执行它们

所谓json api本质就是post请求的webapi

2. 使用

2.1 安装

scrapyd服务端:

pip install scrapyd

scrapyd客户端:

pip install scrapyd-client

2.2 启动

  • scrapy项目路径下 启动scrapyd的命令:
sudo scrapyd
  • 启动之后就可以打开本地运行的scrapyd,浏览器中访问本地6800端口可以查看scrapyd的监控界面

Scrapyd

在这里插入图片描述

  • 点击job可以查看任务监控界面
    在这里插入图片描述

3. 配置

  1. 配置需要部署的项目
    编辑需要部署的项目的scrapy.cfg文件(需要将哪一个爬虫部署到scrapyd中,就配置该项目的该文件)
 [deploy:部署名(部署名可以自行定义)]
 url = http://localhost:6800/
 project = 项目名(创建爬虫项目时使用的名称)

配置

  1. 部署项目到scrapyd
  • 同样在scrapy项目路径下执行:
scrapyd-deploy 部署名(配置文件中设置的名称) -p 项目名称

部署

  • 部署成功之后就可以看到部署的项目

部署成功

  1. 管理scrapy项目
  • 启动项目:
curl http://localhost:6800/schedule.json -d project=project_name -d spider=spider_name

在这里插入图片描述

  • 关闭爬虫:
curl http://localhost:6800/cancel.json -d project=project_name -d job=jobid

注意:curl是命令行工具,如果没有则需要额外安装
4. 使用requests模块控制scrapy项目

import requests

def start_spider(project_name, spider_name):
	"""启动scrapyd中的爬虫
	"""
	# 1. 构建启动scrapyd的爬虫
	url = 'http://localhost:6800/schedule.json -d project=project_nae -d job=jobid'

	# 2. 构建请求体字典
	post_body = {
    	'project': project_name,
    	'spider': spider_name,
	}
	# 3. 利用requests模块发送post请求
	resp = requests.post(url, data=post_body)
	print(response.content.decode())


def close_project(project_name, job_id):
	""""关闭爬虫"""
	# 构建停止爬虫url地址
	url = 'http://localhost:6800/cancel.json'
	post_body = {
    	'project': 项目名,
    	'job': 启动爬虫时返回的jobid,
	}
	resp = requests.post(url, data=post_body)
	print(resp.content.decode())

if __name__ = "main":
	start_project("itcast", 
	

4. 其他webapi

  • curl http://localhost:6800/listprojects.json (列出项目)
  • curl http://localhost:6800/listspiders.json?project=myspider (列出爬虫)
  • curl http://localhost:6800/listjobs.json?project=myspider (列出job)
  • curl http://localhost:6800/cancel.json -d project=myspider -d job=tencent (终止爬虫,该功能会有延时或不能终止爬虫的情况,此时可用kill -9杀进程的方式中止)
  • scrapyd还有其他webapi,百度搜索了解更多
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值