DjangoScrapydManager
DjangoScrapydManager 是一个用于管理 Scrapyd 节点的 Django 应用,提供了对 Scrapyd 节点、项目、版本、爬虫和任务的完整管理功能。
功能特性
- 节点管理:添加、编辑和删除 Scrapyd 节点,支持认证和 SSL
- 项目管理:查看和管理 Scrapyd 上的项目
- 版本管理:查看、部署和删除项目版本
- 爬虫管理:查看爬虫信息,支持爬虫分组
- 任务管理:启动、停止爬虫任务,查看任务状态和日志
- 数据同步:自动同步 Scrapyd 节点上的项目、版本、爬虫和任务信息
- 爬虫组管理:自定义爬虫组, 一次启动多个爬虫
- 监控job:监控爬虫组状态, 自动重启爬虫
技术栈
- Python 3.13+
- Django 5.2.5+
- Requests 2.32.4+
安装方法
INSTALLED_APPS = [
"django_scrapyd_manager"
]
使用方法
1. 添加 Scrapyd 节点
首先需要添加一个 Scrapyd 节点,包括节点名称、IP 地址、端口等信息。如果 Scrapyd 服务需要认证,可以勾选 "需要认证" 并填写用户名和密码。
2. 同步项目信息
添加节点后,系统会自动同步该节点上的项目、版本和爬虫信息。
3. 管理爬虫任务
- 启动爬虫:选择一个爬虫,点击 "启动" 按钮即可启动爬虫任务
- 停止爬虫:可以停止单个任务或某个爬虫的所有任务
- 创建爬虫组:可以将多个爬虫添加到一个组中,方便批量管理
4. 查看任务状态
系统会定期同步任务状态,您可以在任务列表中查看任务的运行状态、开始时间、结束时间等信息。
核心模型
Node
表示一个 Scrapyd 节点,包含节点名称、IP 地址、端口、认证信息等。
Project
表示 Scrapyd 上的一个项目,属于某个节点。
ProjectVersion
表示项目的一个版本,可以包含多个爬虫。
Spider
表示一个爬虫,属于某个项目版本。
SpiderGroup
表示一组爬虫,可以批量管理多个爬虫。
Job
表示一个爬虫任务,记录任务的状态、开始时间、结束时间等信息。
注意事项
- 请确保 Scrapyd 服务已经正确安装并运行
- 对于需要认证的 Scrapyd 服务,请正确配置认证信息
- 系统会定期同步数据,也可以手动触发同步
- 部署新版本时,需要提供正确的 egg 文件路径
下个版本规划
-
Guardian 信号机制
- 在项目发布版本时发送
pre_publish/post_publish信号 - 在爬虫任务启动、结束时发送
pre_job_start/post_job_finish信号 - 方便外部系统监听并执行自定义逻辑(如通知、审计、自动化处理)
- 在项目发布版本时发送
-
任务指标展示
- 在任务详情中展示类似 ScrapydWeb 的运行指标:
page_nums(已抓取页面数)item_nums(已采集 item 数量)
- 支持任务运行中实时刷新
- 在任务详情中展示类似 ScrapydWeb 的运行指标:
贡献指南
欢迎提交 issue 和 pull request 来帮助改进这个项目。
许可证
Metadata
Release files for django-scrapyd-manager 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_scrapyd_manager-0.2.3.tar.gz | 27.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_scrapyd_manager-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 58.6 kB
Release files / django_scrapyd_manager-0.2.3.tar.gz
| Download URL | django_scrapyd_manager-0.2.3.tar.gz |
|---|---|
| Size | 27.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a8ffa9424632febebcb7cdd825c41047a08240db78e5e4c3994e204ef72cdb3
|
|
BLAKE2b-256 checksum How to use checksums |
ba9428b62744a35237ca20503453f14f915c450f2e06c89d131a55ba8f19b586
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.14
|
Release files / django_scrapyd_manager-0.2.3-py3-none-any.whl
| Download URL | django_scrapyd_manager-0.2.3-py3-none-any.whl |
|---|---|
| Size | 31.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
441e52a41f66820d82030ef490fcf102cee60af0e746c02d34db0993a1ab6bb6
|
|
BLAKE2b-256 checksum How to use checksums |
7099be140a9ad70c792986523aa37703471568d2141f0b6f7d13cf7fab840ab5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.14
|