spiderwei-manager 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. spiderwei_manager-1.0.0/PKG-INFO +231 -0
  2. spiderwei_manager-1.0.0/README.md +187 -0
  3. spiderwei_manager-1.0.0/setup.cfg +4 -0
  4. spiderwei_manager-1.0.0/setup.py +67 -0
  5. spiderwei_manager-1.0.0/spiderWei_manager/__init__.py +11 -0
  6. spiderwei_manager-1.0.0/spiderWei_manager/cli/__init__.py +2 -0
  7. spiderwei_manager-1.0.0/spiderWei_manager/cli/commands.py +242 -0
  8. spiderwei_manager-1.0.0/spiderWei_manager/core/__init__.py +11 -0
  9. spiderwei_manager-1.0.0/spiderWei_manager/core/config.py +111 -0
  10. spiderwei_manager-1.0.0/spiderWei_manager/core/executor.py +427 -0
  11. spiderwei_manager-1.0.0/spiderWei_manager/core/logger.py +106 -0
  12. spiderwei_manager-1.0.0/spiderWei_manager/core/manager.py +509 -0
  13. spiderwei_manager-1.0.0/spiderWei_manager/core/notifier.py +63 -0
  14. spiderwei_manager-1.0.0/spiderWei_manager/core/task.py +100 -0
  15. spiderwei_manager-1.0.0/spiderWei_manager/ui/__init__.py +2 -0
  16. spiderwei_manager-1.0.0/spiderWei_manager/ui/web/__init__.py +2 -0
  17. spiderwei_manager-1.0.0/spiderWei_manager/ui/web/api.py +490 -0
  18. spiderwei_manager-1.0.0/spiderWei_manager/ui/web/static/index.html +2668 -0
  19. spiderwei_manager-1.0.0/spiderwei_manager.egg-info/PKG-INFO +231 -0
  20. spiderwei_manager-1.0.0/spiderwei_manager.egg-info/SOURCES.txt +22 -0
  21. spiderwei_manager-1.0.0/spiderwei_manager.egg-info/dependency_links.txt +1 -0
  22. spiderwei_manager-1.0.0/spiderwei_manager.egg-info/entry_points.txt +2 -0
  23. spiderwei_manager-1.0.0/spiderwei_manager.egg-info/requires.txt +14 -0
  24. spiderwei_manager-1.0.0/spiderwei_manager.egg-info/top_level.txt +1 -0
@@ -0,0 +1,231 @@
1
+ Metadata-Version: 2.4
2
+ Name: spiderwei-manager
3
+ Version: 1.0.0
4
+ Summary: Python爬虫脚本管理器 - Web界面 + 命令行
5
+ Home-page: https://github.com/spiderwei/spider-manager
6
+ Author: SpiderWei
7
+ Author-email: spider.wei@example.com
8
+ Keywords: spider crawler manager automation scheduler
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Operating System :: OS Independent
19
+ Requires-Python: >=3.8
20
+ Description-Content-Type: text/markdown
21
+ Requires-Dist: psutil>=5.9.0
22
+ Requires-Dist: click>=8.0.0
23
+ Provides-Extra: web
24
+ Requires-Dist: fastapi>=0.104.0; extra == "web"
25
+ Requires-Dist: uvicorn[standard]>=0.24.0; extra == "web"
26
+ Requires-Dist: python-multipart>=0.0.6; extra == "web"
27
+ Requires-Dist: websockets>=12.0; extra == "web"
28
+ Requires-Dist: aiofiles>=23.0.0; extra == "web"
29
+ Provides-Extra: dev
30
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
31
+ Requires-Dist: black>=23.0.0; extra == "dev"
32
+ Requires-Dist: flake8>=6.0.0; extra == "dev"
33
+ Dynamic: author
34
+ Dynamic: author-email
35
+ Dynamic: classifier
36
+ Dynamic: description
37
+ Dynamic: description-content-type
38
+ Dynamic: home-page
39
+ Dynamic: keywords
40
+ Dynamic: provides-extra
41
+ Dynamic: requires-dist
42
+ Dynamic: requires-python
43
+ Dynamic: summary
44
+
45
+ # 🕷️ SpiderWei Manager
46
+
47
+ Python爬虫脚本管理器 - 支持 Web 界面、后台守护进程、命令行工具和 Python 库调用
48
+
49
+ ## ✨ 主要特性
50
+
51
+ - 🌐 **Web界面** - 现代化的Web管理界面,支持远程访问
52
+ - 📦 **Python库** - 可集成到其他项目中
53
+ - ⚙️ **命令行工具** - 支持自动化脚本
54
+ - 🧩 **后台守护进程** - 无界面运行任务调度器
55
+ - 📊 **实时日志** - WebSocket实时日志推送
56
+ - 🔔 **飞书告警** - 脚本失败自动推送告警
57
+ - 🔄 **自动重启** - 失败自动重启,支持退避策略
58
+ - 📝 **日志轮转** - 自动日志轮转和过期清理
59
+ - 🚀 **远程上传** - Web界面支持上传脚本文件
60
+ - ✏️ **在线编辑** - Web界面支持查看、编辑、备份和恢复脚本内容
61
+
62
+ ## 🚀 快速开始
63
+
64
+ ### 安装
65
+
66
+ ```bash
67
+ # 克隆项目
68
+ git clone https://github.com/spiderwei/spider-manager.git
69
+ cd spider-manager
70
+
71
+ # 基础安装
72
+ pip install -e .
73
+
74
+ # 或者安装Web支持
75
+ pip install -e .[web]
76
+
77
+ # 或者安装开发依赖
78
+ pip install -e .[dev]
79
+ ```
80
+
81
+ ### 启动方式
82
+
83
+ #### 1. Web界面 (推荐)
84
+
85
+ ```bash
86
+ spiderWei_manager web
87
+ ```
88
+
89
+ 然后在浏览器打开 http://localhost:8194
90
+
91
+ 也可以指定监听地址、端口或开发模式:
92
+
93
+ ```bash
94
+ spiderWei_manager web --host 127.0.0.1 --port 8194 --reload
95
+ ```
96
+
97
+ #### 2. 后台守护进程
98
+
99
+ 无界面启动任务调度器,适合服务器长期运行:
100
+
101
+ ```bash
102
+ spiderWei_manager daemon
103
+ ```
104
+
105
+ #### 3. 命令行管理
106
+
107
+ ```bash
108
+ # 添加脚本
109
+ spiderWei_manager add spider.py --schedule loop --interval 3600
110
+
111
+ # 列出任务
112
+ spiderWei_manager list
113
+
114
+ # 删除任务
115
+ spiderWei_manager remove my_spider
116
+
117
+ # 查看配置
118
+ spiderWei_manager config
119
+
120
+ # 查看任务日志
121
+ spiderWei_manager logs my_spider --lines 100
122
+
123
+ # 前台运行单个任务
124
+ spiderWei_manager run my_spider
125
+ ```
126
+
127
+ #### 4. 作为Python库使用
128
+
129
+ ```python
130
+ from spiderWei_manager import SpiderManager, Task
131
+ from datetime import datetime
132
+
133
+ manager = SpiderManager()
134
+
135
+ task = Task(
136
+ name="my_spider",
137
+ path="./spider.py",
138
+ schedule_type="循环",
139
+ interval=3600,
140
+ next_run_time=datetime.now()
141
+ )
142
+
143
+ manager.add_task(task)
144
+ manager.start_scheduler()
145
+ ```
146
+
147
+ ## 📖 详细文档
148
+
149
+ 查看 [USAGE.md](USAGE.md) 了解完整使用说明
150
+
151
+ ## 🎯 使用场景
152
+
153
+ - 🕷️ 管理多个爬虫脚本的定时执行
154
+ - 📊 数据采集任务的集中调度
155
+ - 🤖 自动化测试脚本管理
156
+ - 📈 定时数据处理任务
157
+ - 🔄 需要故障自动恢复的长期任务
158
+
159
+ ## 📂 项目结构
160
+
161
+ ```
162
+ spiderwei-manager/
163
+ ├── spiderWei_manager/ # 主包
164
+ │ ├── core/ # 核心模块(无UI依赖)
165
+ │ │ ├── config.py # 配置管理
166
+ │ │ ├── task.py # 任务模型
167
+ │ │ ├── logger.py # 日志管理
168
+ │ │ ├── notifier.py # 飞书告警
169
+ │ │ └── manager.py # 核心管理器
170
+ │ ├── ui/ # UI层
171
+ │ │ └── web/ # Web界面
172
+ │ └── cli/ # 命令行工具
173
+ ├── setup.py # 打包配置
174
+ └── requirements*.txt # 依赖文件
175
+ ```
176
+
177
+ ## 🔧 开发
178
+
179
+ ```bash
180
+ # 安装开发依赖
181
+ pip install -e .[dev]
182
+
183
+ # 运行测试
184
+ pytest
185
+
186
+ # 代码格式化
187
+ black spiderWei_manager
188
+ ```
189
+
190
+ ## 📝 配置文件
191
+
192
+ 配置文件位于当前工作目录:
193
+
194
+ - `settings.json` - 全局设置
195
+ - `scripts.json` - 任务配置
196
+
197
+ ## 🌟 功能对比
198
+
199
+ | 功能 | Web界面 | CLI/Daemon | Python库 |
200
+ |------|---------|------------|----------|
201
+ | 任务管理 | ✅ | ✅ | ✅ |
202
+ | 远程访问 | ✅ | ❌ | ❌ |
203
+ | 上传脚本 | ✅ | ❌ | ❌ |
204
+ | 下载脚本 | ✅ | ❌ | ❌ |
205
+ | 在线编辑 | ✅ | ❌ | ❌ |
206
+ | 编辑备份/恢复 | ✅ | ❌ | ❌ |
207
+ | 实时日志 | ✅ | ❌ | ✅(回调) |
208
+ | 历史日志查询 | ✅ | ✅ | ✅ |
209
+ | 飞书告警 | ✅ | ✅ | ✅ |
210
+ | 自动重启 | ✅ | ✅ | ✅ |
211
+ | 循环调度 | ✅ | ✅ | ✅ |
212
+ | 每天定时 | ✅ | ❌ | ✅ |
213
+ | 移动端访问 | ✅ | ❌ | ❌ |
214
+
215
+ > 当前代码中没有 Qt 桌面界面和 `spiderWei_manager qt` 命令;如需桌面端,需要另行实现或恢复对应模块。
216
+
217
+ ## 🤝 贡献
218
+
219
+ 欢迎提交 Issue 和 Pull Request!
220
+
221
+ ## 📄 许可证
222
+
223
+ MIT License
224
+
225
+ ## 👤 作者
226
+
227
+ SpiderWei
228
+
229
+ ---
230
+
231
+ **⚡ 提示**: 首次使用建议先用 `spiderWei_manager config` 查看配置,然后用 `spiderWei_manager add` 添加一个测试脚本。
@@ -0,0 +1,187 @@
1
+ # 🕷️ SpiderWei Manager
2
+
3
+ Python爬虫脚本管理器 - 支持 Web 界面、后台守护进程、命令行工具和 Python 库调用
4
+
5
+ ## ✨ 主要特性
6
+
7
+ - 🌐 **Web界面** - 现代化的Web管理界面,支持远程访问
8
+ - 📦 **Python库** - 可集成到其他项目中
9
+ - ⚙️ **命令行工具** - 支持自动化脚本
10
+ - 🧩 **后台守护进程** - 无界面运行任务调度器
11
+ - 📊 **实时日志** - WebSocket实时日志推送
12
+ - 🔔 **飞书告警** - 脚本失败自动推送告警
13
+ - 🔄 **自动重启** - 失败自动重启,支持退避策略
14
+ - 📝 **日志轮转** - 自动日志轮转和过期清理
15
+ - 🚀 **远程上传** - Web界面支持上传脚本文件
16
+ - ✏️ **在线编辑** - Web界面支持查看、编辑、备份和恢复脚本内容
17
+
18
+ ## 🚀 快速开始
19
+
20
+ ### 安装
21
+
22
+ ```bash
23
+ # 克隆项目
24
+ git clone https://github.com/spiderwei/spider-manager.git
25
+ cd spider-manager
26
+
27
+ # 基础安装
28
+ pip install -e .
29
+
30
+ # 或者安装Web支持
31
+ pip install -e .[web]
32
+
33
+ # 或者安装开发依赖
34
+ pip install -e .[dev]
35
+ ```
36
+
37
+ ### 启动方式
38
+
39
+ #### 1. Web界面 (推荐)
40
+
41
+ ```bash
42
+ spiderWei_manager web
43
+ ```
44
+
45
+ 然后在浏览器打开 http://localhost:8194
46
+
47
+ 也可以指定监听地址、端口或开发模式:
48
+
49
+ ```bash
50
+ spiderWei_manager web --host 127.0.0.1 --port 8194 --reload
51
+ ```
52
+
53
+ #### 2. 后台守护进程
54
+
55
+ 无界面启动任务调度器,适合服务器长期运行:
56
+
57
+ ```bash
58
+ spiderWei_manager daemon
59
+ ```
60
+
61
+ #### 3. 命令行管理
62
+
63
+ ```bash
64
+ # 添加脚本
65
+ spiderWei_manager add spider.py --schedule loop --interval 3600
66
+
67
+ # 列出任务
68
+ spiderWei_manager list
69
+
70
+ # 删除任务
71
+ spiderWei_manager remove my_spider
72
+
73
+ # 查看配置
74
+ spiderWei_manager config
75
+
76
+ # 查看任务日志
77
+ spiderWei_manager logs my_spider --lines 100
78
+
79
+ # 前台运行单个任务
80
+ spiderWei_manager run my_spider
81
+ ```
82
+
83
+ #### 4. 作为Python库使用
84
+
85
+ ```python
86
+ from spiderWei_manager import SpiderManager, Task
87
+ from datetime import datetime
88
+
89
+ manager = SpiderManager()
90
+
91
+ task = Task(
92
+ name="my_spider",
93
+ path="./spider.py",
94
+ schedule_type="循环",
95
+ interval=3600,
96
+ next_run_time=datetime.now()
97
+ )
98
+
99
+ manager.add_task(task)
100
+ manager.start_scheduler()
101
+ ```
102
+
103
+ ## 📖 详细文档
104
+
105
+ 查看 [USAGE.md](USAGE.md) 了解完整使用说明
106
+
107
+ ## 🎯 使用场景
108
+
109
+ - 🕷️ 管理多个爬虫脚本的定时执行
110
+ - 📊 数据采集任务的集中调度
111
+ - 🤖 自动化测试脚本管理
112
+ - 📈 定时数据处理任务
113
+ - 🔄 需要故障自动恢复的长期任务
114
+
115
+ ## 📂 项目结构
116
+
117
+ ```
118
+ spiderwei-manager/
119
+ ├── spiderWei_manager/ # 主包
120
+ │ ├── core/ # 核心模块(无UI依赖)
121
+ │ │ ├── config.py # 配置管理
122
+ │ │ ├── task.py # 任务模型
123
+ │ │ ├── logger.py # 日志管理
124
+ │ │ ├── notifier.py # 飞书告警
125
+ │ │ └── manager.py # 核心管理器
126
+ │ ├── ui/ # UI层
127
+ │ │ └── web/ # Web界面
128
+ │ └── cli/ # 命令行工具
129
+ ├── setup.py # 打包配置
130
+ └── requirements*.txt # 依赖文件
131
+ ```
132
+
133
+ ## 🔧 开发
134
+
135
+ ```bash
136
+ # 安装开发依赖
137
+ pip install -e .[dev]
138
+
139
+ # 运行测试
140
+ pytest
141
+
142
+ # 代码格式化
143
+ black spiderWei_manager
144
+ ```
145
+
146
+ ## 📝 配置文件
147
+
148
+ 配置文件位于当前工作目录:
149
+
150
+ - `settings.json` - 全局设置
151
+ - `scripts.json` - 任务配置
152
+
153
+ ## 🌟 功能对比
154
+
155
+ | 功能 | Web界面 | CLI/Daemon | Python库 |
156
+ |------|---------|------------|----------|
157
+ | 任务管理 | ✅ | ✅ | ✅ |
158
+ | 远程访问 | ✅ | ❌ | ❌ |
159
+ | 上传脚本 | ✅ | ❌ | ❌ |
160
+ | 下载脚本 | ✅ | ❌ | ❌ |
161
+ | 在线编辑 | ✅ | ❌ | ❌ |
162
+ | 编辑备份/恢复 | ✅ | ❌ | ❌ |
163
+ | 实时日志 | ✅ | ❌ | ✅(回调) |
164
+ | 历史日志查询 | ✅ | ✅ | ✅ |
165
+ | 飞书告警 | ✅ | ✅ | ✅ |
166
+ | 自动重启 | ✅ | ✅ | ✅ |
167
+ | 循环调度 | ✅ | ✅ | ✅ |
168
+ | 每天定时 | ✅ | ❌ | ✅ |
169
+ | 移动端访问 | ✅ | ❌ | ❌ |
170
+
171
+ > 当前代码中没有 Qt 桌面界面和 `spiderWei_manager qt` 命令;如需桌面端,需要另行实现或恢复对应模块。
172
+
173
+ ## 🤝 贡献
174
+
175
+ 欢迎提交 Issue 和 Pull Request!
176
+
177
+ ## 📄 许可证
178
+
179
+ MIT License
180
+
181
+ ## 👤 作者
182
+
183
+ SpiderWei
184
+
185
+ ---
186
+
187
+ **⚡ 提示**: 首次使用建议先用 `spiderWei_manager config` 查看配置,然后用 `spiderWei_manager add` 添加一个测试脚本。
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,67 @@
1
+ from setuptools import setup, find_packages
2
+ from pathlib import Path
3
+
4
+ # 读取README
5
+ readme_file = Path(__file__).parent / "README.md"
6
+ long_description = ""
7
+ if readme_file.exists():
8
+ long_description = readme_file.read_text(encoding='utf-8')
9
+
10
+ setup(
11
+ name="spiderwei-manager",
12
+ version="1.0.0",
13
+ author="SpiderWei",
14
+ author_email="spider.wei@example.com",
15
+ description="Python爬虫脚本管理器 - Web界面 + 命令行",
16
+ long_description=long_description,
17
+ long_description_content_type="text/markdown",
18
+ url="https://github.com/spiderwei/spider-manager",
19
+ packages=find_packages(),
20
+ include_package_data=True,
21
+ package_data={
22
+ 'spiderWei_manager': [
23
+ 'ui/web/static/*.*',
24
+ 'ui/web/static/**/*.*',
25
+ ],
26
+ },
27
+ install_requires=[
28
+ # 核心依赖(必需)
29
+ "psutil>=5.9.0",
30
+ "click>=8.0.0",
31
+ ],
32
+ extras_require={
33
+ # Web界面依赖
34
+ "web": [
35
+ "fastapi>=0.104.0",
36
+ "uvicorn[standard]>=0.24.0",
37
+ "python-multipart>=0.0.6",
38
+ "websockets>=12.0",
39
+ "aiofiles>=23.0.0",
40
+ ],
41
+ # 开发依赖
42
+ "dev": [
43
+ "pytest>=7.0.0",
44
+ "black>=23.0.0",
45
+ "flake8>=6.0.0",
46
+ ]
47
+ },
48
+ entry_points={
49
+ "console_scripts": [
50
+ "spiderWei_manager=spiderWei_manager.cli.commands:main",
51
+ ],
52
+ },
53
+ python_requires=">=3.8",
54
+ classifiers=[
55
+ "Development Status :: 4 - Beta",
56
+ "Intended Audience :: Developers",
57
+ "Topic :: Software Development :: Libraries :: Python Modules",
58
+ "License :: OSI Approved :: MIT License",
59
+ "Programming Language :: Python :: 3",
60
+ "Programming Language :: Python :: 3.8",
61
+ "Programming Language :: Python :: 3.9",
62
+ "Programming Language :: Python :: 3.10",
63
+ "Programming Language :: Python :: 3.11",
64
+ "Operating System :: OS Independent",
65
+ ],
66
+ keywords="spider crawler manager automation scheduler",
67
+ )
@@ -0,0 +1,11 @@
1
+ # -*- coding: utf-8 -*-
2
+ """SpiderWei Manager - 爬虫脚本管理器核心包"""
3
+
4
+ __version__ = "1.0.0"
5
+ __author__ = "SpiderWei"
6
+
7
+ from .core.manager import SpiderManager
8
+ from .core.task import Task
9
+ from .core.config import Config
10
+
11
+ __all__ = ["SpiderManager", "Task", "Config"]
@@ -0,0 +1,2 @@
1
+ # -*- coding: utf-8 -*-
2
+ """命令行工具"""