parsehub 2.0.20__tar.gz → 2.0.22__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.
- {parsehub-2.0.20/src/parsehub.egg-info → parsehub-2.0.22}/PKG-INFO +88 -136
- {parsehub-2.0.20 → parsehub-2.0.22}/README.md +87 -135
- {parsehub-2.0.20 → parsehub-2.0.22}/pyproject.toml +1 -1
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/cli.py +15 -22
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/base/ytdlp.py +85 -49
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/kuaishou.py +1 -1
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/xhs.py +2 -2
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/douyin.py +15 -5
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/kuaishou.py +37 -17
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/weixin.py +1 -1
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/xhs.py +4 -3
- {parsehub-2.0.20 → parsehub-2.0.22/src/parsehub.egg-info}/PKG-INFO +88 -136
- {parsehub-2.0.20 → parsehub-2.0.22}/test/test_cli.py +37 -4
- {parsehub-2.0.20 → parsehub-2.0.22}/LICENSE +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/setup.cfg +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/__init__.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/__init__.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/cli_config.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/config/__init__.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/config/config.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/errors.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/__init__.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/base/__init__.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/base/base.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/__init__.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/bilibili.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/coolapk.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/douyin.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/facebook.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/instagram.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/pipix.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/threads.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/tieba.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/tiktok.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/twitter.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/weibo.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/weixin.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/xiaoheihe.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/youtube.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/parsers/parser/zuiyou.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/__init__.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/bilibili.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/coolapk.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/instagram.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/pipix.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/threads.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/tieba.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/tiktok.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/twitter.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/weibo.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/xiaoheihe.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/provider_api/zuiyou.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/types/__init__.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/types/callback.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/types/media_file.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/types/media_ref.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/types/platform.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/types/post.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/types/result.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/utils/downloader.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/utils/media_info.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub/utils/utils.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub.egg-info/SOURCES.txt +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub.egg-info/dependency_links.txt +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub.egg-info/entry_points.txt +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub.egg-info/requires.txt +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/src/parsehub.egg-info/top_level.txt +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/test/test_cli_config.py +0 -0
- {parsehub-2.0.20 → parsehub-2.0.22}/test/test_core_offline.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: parsehub
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.22
|
|
4
4
|
Summary: 轻量、异步、开箱即用的社交媒体聚合解析库
|
|
5
5
|
Author-email: 梓澪 <zilingmio@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -51,9 +51,9 @@ Dynamic: license-file
|
|
|
51
51
|
[](LICENSE)
|
|
52
52
|
[](https://github.com/z-mio/parsehub)
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
轻量, 异步, 开箱即用的社交媒体解析与媒体下载库, 支持 17+ 平台
|
|
55
55
|
|
|
56
|
-
[安装](#-安装) · [
|
|
56
|
+
[安装](#-安装) · [快速开始](#-快速开始) · [高级用法](#-高级用法) · [TG Bot](https://github.com/z-mio/parse_hub_bot)
|
|
57
57
|
|
|
58
58
|
</div>
|
|
59
59
|
|
|
@@ -63,26 +63,43 @@ Dynamic: license-file
|
|
|
63
63
|
|
|
64
64
|
- 🌍 **广泛的平台支持** — 覆盖国内外 17+ 主流社交媒体平台
|
|
65
65
|
- 🧹 **链接清理** — 自动提取分享文案中的链接,并清除可移除的跟踪参数
|
|
66
|
-
- 🎬 **多媒体解析** —
|
|
66
|
+
- 🎬 **多媒体解析** — 支持视频, 图文, 动图, 实况照片和富文本文章
|
|
67
67
|
- 📦 **同步 / 异步 API** — 同时提供 `async/await` 与 `*_sync` 调用方式
|
|
68
|
+
- 🐚 **CLI 支持** — 命令行原生支持,轻量开箱即用
|
|
68
69
|
- 🤖 **Telegram Bot** — 基于本项目的 Bot 已上线 → [@ParseHuBot](https://t.me/ParsehuBot)
|
|
69
70
|
|
|
70
|
-
##
|
|
71
|
+
## 🌐 支持平台
|
|
71
72
|
|
|
72
|
-
|
|
73
|
+
| 平台 | 视频 | 图文 | 其他 |
|
|
74
|
+
|-----------------|:--:|:--:|-------|
|
|
75
|
+
| **Twitter / X** | ✅ | ✅ | |
|
|
76
|
+
| **Instagram** | ✅ | ✅ | |
|
|
77
|
+
| **YouTube** | ✅ | | 🎵 音乐 |
|
|
78
|
+
| **Facebook** | ✅ | | |
|
|
79
|
+
| **Threads** | ✅ | ✅ | |
|
|
80
|
+
| **Bilibili** | ✅ | | 📝 动态 |
|
|
81
|
+
| **抖音** | ✅ | ✅ | |
|
|
82
|
+
| **TikTok** | ✅ | ✅ | |
|
|
83
|
+
| **微博** | ✅ | ✅ | |
|
|
84
|
+
| **小红书** | ✅ | ✅ | |
|
|
85
|
+
| **贴吧** | ✅ | ✅ | |
|
|
86
|
+
| **微信公众号** | | ✅ | |
|
|
87
|
+
| **快手** | ✅ | | |
|
|
88
|
+
| **酷安** | | ✅ | |
|
|
89
|
+
| **皮皮虾** | ✅ | ✅ | |
|
|
90
|
+
| **最右** | ✅ | ✅ | |
|
|
91
|
+
| **小黑盒** | ✅ | ✅ | |
|
|
73
92
|
|
|
74
|
-
|
|
93
|
+
## 📦 安装
|
|
75
94
|
|
|
76
|
-
|
|
95
|
+
### CLI 安装
|
|
77
96
|
|
|
78
97
|
```bash
|
|
79
98
|
pipx install "parsehub[cli]"
|
|
80
|
-
ph
|
|
99
|
+
ph -v
|
|
81
100
|
```
|
|
82
101
|
|
|
83
|
-
###
|
|
84
|
-
|
|
85
|
-
如果要在项目代码中调用 Python API:
|
|
102
|
+
### Python 库安装
|
|
86
103
|
|
|
87
104
|
```bash
|
|
88
105
|
# uv
|
|
@@ -90,21 +107,17 @@ uv add parsehub
|
|
|
90
107
|
|
|
91
108
|
# pip
|
|
92
109
|
pip install parsehub
|
|
93
|
-
```
|
|
94
110
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
# uv
|
|
111
|
+
# 需要完整 CLI 能力时,可安装 `cli` 扩展
|
|
99
112
|
uv add "parsehub[cli]"
|
|
100
|
-
|
|
101
|
-
# pip
|
|
102
113
|
pip install "parsehub[cli]"
|
|
103
114
|
```
|
|
104
115
|
|
|
105
|
-
## 🚀
|
|
116
|
+
## 🚀 快速开始
|
|
117
|
+
|
|
118
|
+
### CLI
|
|
106
119
|
|
|
107
|
-
|
|
120
|
+
#### 解析链接或分享文案
|
|
108
121
|
|
|
109
122
|
```bash
|
|
110
123
|
parsehub "https://example.com/post/1"
|
|
@@ -113,62 +126,49 @@ parsehub "https://example.com/post/1"
|
|
|
113
126
|
ph "https://example.com/post/1"
|
|
114
127
|
```
|
|
115
128
|
|
|
116
|
-
|
|
129
|
+
#### 下载媒体
|
|
117
130
|
|
|
118
131
|
```bash
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
# 短命令等价写法
|
|
122
|
-
ph d "https://example.com/post/1" -o ./downloads
|
|
132
|
+
ph d "https://example.com/post/1"
|
|
123
133
|
```
|
|
124
134
|
|
|
125
|
-
|
|
135
|
+
#### 常用命令
|
|
126
136
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
ph
|
|
131
|
-
|
|
137
|
+
| 命令 | 说明 |
|
|
138
|
+
|--------------------------------------------------|-------------|
|
|
139
|
+
| `ph ls` | 查看支持的平台 |
|
|
140
|
+
| `ph set proxy <platform> <proxy>` | 设置解析代理和下载代理 |
|
|
141
|
+
| `ph set proxy <platform> <proxy> --for download` | 只设置下载代理 |
|
|
142
|
+
| `ph set cookie <platform>` | 保存平台 Cookie |
|
|
143
|
+
| `ph set list` | 查看配置列表 |
|
|
144
|
+
| `ph set show <platform>` | 查看平台配置 |
|
|
132
145
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
# 同时设置解析代理和下载代理
|
|
137
|
-
ph set proxy xhs http://127.0.0.1:7890
|
|
138
|
-
|
|
139
|
-
# 只设置下载代理
|
|
140
|
-
ph set proxy xhs http://127.0.0.1:7891 --for download
|
|
141
|
-
|
|
142
|
-
# 保存 Cookie,输入时不会显示在终端里
|
|
143
|
-
ph set cookie xhs
|
|
144
|
-
|
|
145
|
-
# 查看配置状态
|
|
146
|
-
ph set list
|
|
147
|
-
ph set show xhs
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
配置会自动按平台应用到后续解析和下载;临时覆盖时仍可直接传参数:
|
|
146
|
+
配置会自动按平台应用到后续解析和下载; 临时覆盖时仍可直接传参数:
|
|
151
147
|
|
|
152
148
|
```bash
|
|
153
149
|
ph "https://example.com/post/1" --proxy http://127.0.0.1:7890
|
|
154
150
|
ph d "https://example.com/post/1" --parse-proxy http://127.0.0.1:7890 --cookie "key=value"
|
|
155
151
|
```
|
|
156
152
|
|
|
157
|
-
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
### Python API
|
|
158
156
|
|
|
159
|
-
|
|
157
|
+
#### 同步解析
|
|
160
158
|
|
|
161
159
|
```python
|
|
162
160
|
from parsehub import ParseHub
|
|
163
161
|
|
|
164
162
|
ph = ParseHub()
|
|
165
163
|
result = ph.parse_sync("https://www.xiaoheihe.cn/app/bbs/link/174972336")
|
|
164
|
+
print(result)
|
|
165
|
+
|
|
166
|
+
dr = result.download_sync()
|
|
167
|
+
print(dr)
|
|
166
168
|
|
|
167
|
-
print(result.title)
|
|
168
|
-
print(result.raw_url)
|
|
169
169
|
```
|
|
170
170
|
|
|
171
|
-
|
|
171
|
+
#### 异步解析
|
|
172
172
|
|
|
173
173
|
```python
|
|
174
174
|
import asyncio
|
|
@@ -180,84 +180,39 @@ async def main():
|
|
|
180
180
|
result = await ph.parse("https://tieba.baidu.com/p/9939510114")
|
|
181
181
|
print(result)
|
|
182
182
|
|
|
183
|
+
dr = await result.download()
|
|
184
|
+
print(dr)
|
|
183
185
|
|
|
184
|
-
asyncio.run(main())
|
|
185
|
-
```
|
|
186
186
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
```python
|
|
190
|
-
from parsehub import ParseHub
|
|
191
|
-
|
|
192
|
-
ph = ParseHub()
|
|
193
|
-
result = ph.download_sync(
|
|
194
|
-
"https://www.xiaoheihe.cn/app/bbs/link/174972336",
|
|
195
|
-
path="./downloads",
|
|
196
|
-
save_metadata=True,
|
|
197
|
-
)
|
|
198
|
-
|
|
199
|
-
print(result.output_dir)
|
|
200
|
-
print(result.media)
|
|
187
|
+
asyncio.run(main())
|
|
201
188
|
```
|
|
202
189
|
|
|
203
|
-
|
|
190
|
+
#### 下载媒体
|
|
204
191
|
|
|
205
192
|
```python
|
|
206
193
|
from parsehub import ParseHub
|
|
207
194
|
|
|
208
195
|
ph = ParseHub()
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
path="./downloads",
|
|
212
|
-
parse_cookie="key1=value1; key2=value2",
|
|
213
|
-
parse_proxy="http://127.0.0.1:7890",
|
|
214
|
-
save_metadata=True,
|
|
215
|
-
)
|
|
196
|
+
result = ph.download_sync("https://www.xiaoheihe.cn/app/bbs/link/174972336")
|
|
197
|
+
print(result)
|
|
216
198
|
```
|
|
217
199
|
|
|
218
|
-
## 🌐 支持平台
|
|
219
|
-
|
|
220
|
-
| 平台 | 视频 | 图文 | 其他 |
|
|
221
|
-
|:----------------|:--:|:--:|:------|
|
|
222
|
-
| **Twitter / X** | ✅ | ✅ | |
|
|
223
|
-
| **Instagram** | ✅ | ✅ | |
|
|
224
|
-
| **YouTube** | ✅ | | 🎵 音乐 |
|
|
225
|
-
| **Facebook** | ✅ | | |
|
|
226
|
-
| **Threads** | ✅ | ✅ | |
|
|
227
|
-
| **Bilibili** | ✅ | | 📝 动态 |
|
|
228
|
-
| **抖音** | ✅ | ✅ | |
|
|
229
|
-
| **TikTok** | ✅ | ✅ | |
|
|
230
|
-
| **微博** | ✅ | ✅ | |
|
|
231
|
-
| **小红书** | ✅ | ✅ | |
|
|
232
|
-
| **贴吧** | ✅ | ✅ | |
|
|
233
|
-
| **微信公众号** | | ✅ | |
|
|
234
|
-
| **快手** | ✅ | | |
|
|
235
|
-
| **酷安** | | ✅ | |
|
|
236
|
-
| **皮皮虾** | ✅ | ✅ | |
|
|
237
|
-
| **最右** | ✅ | ✅ | |
|
|
238
|
-
| **小黑盒** | ✅ | ✅ | |
|
|
239
|
-
|
|
240
|
-
> 可通过 `ph ls` 或 `ParseHub().get_platforms()` 获取当前版本实际注册的平台列表。
|
|
241
|
-
|
|
242
200
|
## 🔑 高级用法
|
|
243
201
|
|
|
244
|
-
###
|
|
245
|
-
|
|
246
|
-
`url` 参数可以直接传分享文案,ParseHub 会自动提取其中的第一个链接:
|
|
202
|
+
### Cookie 登录与代理
|
|
247
203
|
|
|
248
|
-
|
|
249
|
-
from parsehub import ParseHub
|
|
204
|
+
需要登录态的平台可传 Cookie, 解析入口使用 `cookie` / `proxy`, 下载入口使用 `parse_cookie` / `parse_proxy` 作为解析阶段参数
|
|
250
205
|
|
|
251
|
-
|
|
252
|
-
text = "复制这条分享 https://tieba.baidu.com/p/9939510114 后打开"
|
|
206
|
+
当前支持 Cookie 的平台:
|
|
253
207
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
208
|
+
- `Twitter / X`
|
|
209
|
+
- `Instagram`
|
|
210
|
+
- `YouTube`
|
|
211
|
+
- `Bilibili`
|
|
212
|
+
- `抖音`
|
|
213
|
+
- `TikTok`
|
|
214
|
+
- `快手`
|
|
215
|
+
- `小红书`
|
|
261
216
|
|
|
262
217
|
```python
|
|
263
218
|
from parsehub import ParseHub
|
|
@@ -270,13 +225,9 @@ result = ph.parse_sync(
|
|
|
270
225
|
)
|
|
271
226
|
```
|
|
272
227
|
|
|
273
|
-
Cookie
|
|
228
|
+
Cookie 支持多种格式:
|
|
274
229
|
|
|
275
230
|
```python
|
|
276
|
-
from parsehub import ParseHub
|
|
277
|
-
|
|
278
|
-
ph = ParseHub()
|
|
279
|
-
|
|
280
231
|
# Cookie header 字符串
|
|
281
232
|
ph.parse_sync("https://example.com", cookie="key1=value1; key2=value2")
|
|
282
233
|
|
|
@@ -287,24 +238,17 @@ ph.parse_sync("https://example.com", cookie='{"key1": "value1", "key2": "value2"
|
|
|
287
238
|
ph.parse_sync("https://example.com", cookie={"key1": "value1", "key2": "value2"})
|
|
288
239
|
```
|
|
289
240
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
- `Twitter / X`
|
|
293
|
-
- `Instagram`
|
|
294
|
-
- `YouTube`
|
|
295
|
-
- `Bilibili`
|
|
296
|
-
- `抖音`
|
|
297
|
-
- `TikTok`
|
|
298
|
-
- `快手`
|
|
241
|
+
---
|
|
299
242
|
|
|
300
243
|
### 下载进度回调
|
|
301
244
|
|
|
302
245
|
```python
|
|
303
246
|
from parsehub import ParseHub
|
|
247
|
+
from parsehub.types import ProgressUnit
|
|
304
248
|
|
|
305
249
|
|
|
306
250
|
class ProgressTracker:
|
|
307
|
-
async def __call__(self, current: int, total: int, unit:
|
|
251
|
+
async def __call__(self, current: int, total: int, unit: ProgressUnit, *args, task_name: str = "", **kwargs):
|
|
308
252
|
print(f"[{task_name}] {current}/{total} ({unit})")
|
|
309
253
|
|
|
310
254
|
|
|
@@ -317,10 +261,12 @@ result = ParseHub().download_sync(
|
|
|
317
261
|
)
|
|
318
262
|
```
|
|
319
263
|
|
|
320
|
-
`unit`
|
|
264
|
+
`unit` 值:
|
|
265
|
+
|
|
266
|
+
- `bytes`: 单文件下载时的字节进度
|
|
267
|
+
- `count`: 多文件下载时的文件数量进度
|
|
321
268
|
|
|
322
|
-
|
|
323
|
-
- `count`:多文件下载时的文件数量进度
|
|
269
|
+
---
|
|
324
270
|
|
|
325
271
|
### 保存 metadata.json
|
|
326
272
|
|
|
@@ -336,6 +282,8 @@ result = ParseHub().download_sync(
|
|
|
336
282
|
print(result.output_dir / "metadata.json")
|
|
337
283
|
```
|
|
338
284
|
|
|
285
|
+
---
|
|
286
|
+
|
|
339
287
|
### 全局配置
|
|
340
288
|
|
|
341
289
|
```python
|
|
@@ -345,6 +293,8 @@ from parsehub.config import GlobalConfig
|
|
|
345
293
|
GlobalConfig.default_save_dir = Path("./downloads")
|
|
346
294
|
```
|
|
347
295
|
|
|
296
|
+
---
|
|
297
|
+
|
|
348
298
|
### 错误处理
|
|
349
299
|
|
|
350
300
|
```python
|
|
@@ -359,6 +309,8 @@ except ParseError as exc:
|
|
|
359
309
|
print(f"解析失败: {exc}")
|
|
360
310
|
```
|
|
361
311
|
|
|
312
|
+
---
|
|
313
|
+
|
|
362
314
|
## 🤝 参考项目
|
|
363
315
|
|
|
364
316
|
- [Evil0ctal/Douyin_TikTok_Download_API](https://github.com/Evil0ctal/Douyin_TikTok_Download_API)
|
|
@@ -375,6 +327,6 @@ except ParseError as exc:
|
|
|
375
327
|
|
|
376
328
|
<div align="center">
|
|
377
329
|
|
|
378
|
-
**如果这个项目对你有帮助,欢迎点个 ⭐ Star
|
|
330
|
+
**如果这个项目对你有帮助,欢迎点个 ⭐ Star!**
|
|
379
331
|
|
|
380
332
|
</div>
|