初探Scrapyd工具在Linux系统下的安装使用

Scrapyd是什么

Scrapyd是一个基于Python的开源爬虫部署工具,它可以帮助开发者方便地部署、管理和监控Scrapy爬虫。

为什么需要Scrapyd

其实可以不使用Scrapyd工具来部署和管理Scrapy爬虫的,但使用Scrapyd工具可以带来以下好处:

  • 简化部署流程:Scrapyd提供了一个统一的部署接口,可以方便地将Scrapy爬虫部署到远程服务器或本地机器上。使用Scrapyd,开发者不需要手动配置爬虫环境、安装依赖项或编写部署脚本,可以快速、准确地部署爬虫。
  • 管理爬虫状态:Scrapyd提供了一个Web界面和API接口,可以帮助开发者轻松地管理和监控爬虫的运行状态和日志输出。通过Scrapyd,开发者可以随时启动、停止、暂停、恢复、查询和删除爬虫任务,也可以实时查看和分析爬虫的运行状态和输出结果。
  • 方便爬虫调度:Scrapyd提供了一个Web API接口,可以通过HTTP请求来调度和控制Scrapy爬虫的运行。使用Scrapyd,开发者可以轻松地将爬虫任务添加到调度队列中,也可以根据需要调整爬虫运行的参数和选项。
  • 支持分布式运行:Scrapyd支持将Scrapy爬虫分布式运行在多个服务器上,以提高爬虫的性能和稳定性。使用Scrapyd,开发者可以轻松地管理和监控分布式爬虫的运行状态和日志输出。

Scrapyd的安装

# 建议提权安装
sudo pip install scrapyd

Scrapyd的配置文件

scrapyd的启动需要配置文件支持。根据官方文档的介绍,会在以下位置中搜索配置文件(优先级降序):

  • /etc/scrapyd/scrapyd.conf
  • /etc/scrapyd/conf.d/*
  • ~/.scrapyd.conf

我这里习惯将配置文件放到/etc/scrapyd/scrapyd.conf路径下。配置文件如下(更多配置看文章后文档):

[scrapyd]
bind_address = 127.0.0.1
http_port   = 6800
username    = admin
password    = 123456
eggs_dir=/home/xxx/scrapyd/eggs
dbs_dir=/home/xxx/scrapyd/dbs
logs_dir=/home/xxx/scrapyd/logs

建议将egg_dir、dbs_dir、logs_dir等目录设置好,不然这些文件有可能存在根目录下。

Scrapyd的运行

有了配置文件后,在命令行可以直接通过命令运行:

scrapyd

当我们启动服务后,可以通过浏览器访问http://127.0.0.1:6800来访问scrapyd的web服务。

如果想以daemon守护进程方式来运行的话,可以借助supervisor等守护进程管理工具。

Scrapyd中的API怎么使用

当我们scrapyd服务启动后,就可以通过请求一些api方式来管理爬虫的状态以及调度爬虫队列。

官方提供通过curl方式来访问api接口,这里我们由于配置文件设置了账户密码,所以在请求的时候需要带上账号密码:

curl -u admin:123456 http://localhost:6800/daemonstatus.json

通过python中的request库来请求:

import requests

url = "http://localhost:6800/daemonstatus.json"
username = "admin"
password = "123456"

response = requests.get(url, auth=(username, password))

print(response.json())

至于有哪些api接口,可以通过官方文档去查看。

如何将Scrapy的项目部署到Scrapyd服务器上

将scrapy项目部署到 Scrapyd 服务器通常包括两个步骤:

  1. 将项目生成egg这种软件包格式。
  2. 通过 addversion.json API接口将 egg 软件包上传到 Scrapyd 服务器。

有一个命令工具就能自动化构建 egg 软件包并将其推送到目标 Scrapyd 服务器,这个工具就是scrapyd的客户端Scrapyd-client

安装scrapyd的客户端

pip install scrapyd-client

安装scrapyd的客户端后,会提供两个命令工具:scrapyd-deployscrapyd-client。而这个scrapyd-deploy命令就是用来部署项目到scrapyd服务器的。

scrapy.cfg配置文件

scrapyd-deploy命令运行需要一系列的参数,包括scrapyd服务器地址、项目名称等。这里可以通过编写一个配置文件,将参数写入以scrapy.cfg为名的配置文件中。

[deploy]
url = http://localhost:6800
username = admin
password = 123456
project = projectname
version = 0.0.1

scrapyd-deploy部署项目

scrapy.cfg配置文件同级目录下,运行命令:

scrapyd-deploy

如果成功,您应该会看到类似于以下内容的 JSON 响应:

Deploying myproject-1287453519 to http://localhost:6800/addversion.json
Server response (200):
{"status": "ok", "spiders": ["spider1", "spider2"]}

Scrapyd的分布式部署

未完待续~

官方文档:https://scrapyd.readthedocs.io/en/stable/index.html
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇