6
6
<img alt =" GitHub Repo stars " src =" https://img.shields.io/github/stars/JoeanAmier/XHS-Downloader?style=for-the-badge&color=fff200 " >
7
7
<img alt =" GitHub all releases " src =" https://img.shields.io/github/downloads/JoeanAmier/XHS-Downloader/total?style=for-the-badge&color=1b9cfc " >
8
8
<img alt =" GitHub release (with filter) " src =" https://img.shields.io/github/v/release/JoeanAmier/XHS-Downloader?style=for-the-badge&color=44bd32 " >
9
- <hr >
9
+ <p >🔥 < b >小红书作品采集工具</ b >:采集小红书作品信息;提取小红书作品下载地址;下载小红书无水印作品文件!</ p >
10
10
</div >
11
11
<h1 >📑 功能清单</h1 >
12
12
<ul >
13
- <li >✅ 采集小红书图文/ 视频作品信息</li >
14
- <li >✅ 提取小红书图文/ 视频作品下载地址</li >
15
- <li >✅ 下载小红书无水印图文/ 视频作品文件</li >
13
+ <li >✅ 采集小红书图文 / 视频作品信息</li >
14
+ <li >✅ 提取小红书图文 / 视频作品下载地址</li >
15
+ <li >✅ 下载小红书无水印图文 / 视频作品文件</li >
16
16
<li >✅ 自动跳过已下载的作品文件</li >
17
17
<li >✅ 作品文件完整性处理机制</li >
18
18
<li >✅ 持久化储存作品信息至文件</li >
19
+ <li >✅ 作品文件储存至单独文件夹</li >
19
20
<li >☑️ 后台监听剪贴板下载作品</li >
20
21
<li >☑️ 支持 API 调用功能</li >
21
22
</ul >
22
23
<h1 >📸 程序截图</h1 >
23
24
<br >
24
- <img src =" static/程序运行截图1.png " alt =" " >
25
- <hr >
26
- <img src =" static/程序运行截图2.png " alt =" " >
25
+ <p ><b >🎥 点击图片观看演示视频</b ></p >
26
+ <a href =" https://www.bilibili.com/video/BV1nQ4y137it/ " ><img src =" static/程序运行截图.png " alt =" " ></a >
27
27
<h1 >🔗 支持链接</h1 >
28
28
<ul >
29
29
<li ><code >https://www.xiaohongshu.com/explore/作品ID</code ></li >
35
35
<h1 >🪟 关于终端</h1 >
36
36
<p >⭐ 推荐使用 <a href =" https://learn.microsoft.com/zh-cn/windows/terminal/install " >Windows 终端</a > (Windows 11 自带默认终端)运行程序以便获得最佳显示效果!</p >
37
37
<h1 >🥣 使用方法</h1 >
38
- <p >如果仅需下载作品文件,选择 <b >直接运行</b > 或者 <b >源码运行</b > 均可,如果需要获取作品信息,则需要进行二次开发进行调用。</p >
39
- <h2 >🖱 直接运行</h2 >
40
- <p >前往 <a href =" https://github.com/JoeanAmier/XHS-Downloader/releases/latest " >Releases</a > 下载程序压缩包,解压后打开程序文件夹,双击运行 <code >main.exe</code > 即可使用。</p >
38
+ <p >如果仅需下载无水印作品文件,建议选择 <b >程序运行</b >;如果有其他需求,建议选择 <b >源码运行</b >!</p >
39
+ <h2 >🖱 程序运行</h2 >
40
+ <p >Windows 10 及以上用户可前往 <a href =" https://github.com/JoeanAmier/XHS-Downloader/releases/latest " >Releases</a > 下载程序压缩包,解压后打开程序文件夹,双击运行 <code >main.exe</code > 即可使用。</p >
41
+ <p >若通过此方式使用程序,文件默认下载路径:<code >.\_internal\Download</code >;配置文件路径:<code >.\_internal\settings.json</code ></p >
41
42
<h2 >⌨️ 源码运行</h2 >
42
43
<ol >
43
44
<li >安装版本号不低于 <code >3.12</code > 的 Python 解释器</li >
44
- <li >运行 <code >pip install -r requirements.txt</code > 命令安装程序所需模块</li >
45
+ <li >运行 <code >pip install -i https://pypi.tuna.tsinghua.edu.cn/simple - r requirements.txt</code > 命令安装程序所需模块</li >
45
46
<li >下载本项目最新的源码或 <a href =" https://github.com/JoeanAmier/XHS-Downloader/releases/latest " >Releases</a > 发布的源码至本地</li >
46
47
<li >运行 <code >main.py</code > 即可使用</li >
47
48
</ol >
48
- <h2 >💻 二次开发</h2 >
49
- <p >如果需要获取小红书图文/视频作品信息 ,可以根据 <code >main.py</code > 的注释提示进行代码调用。 </p >
49
+ <h1 >💻 二次开发</h1 >
50
+ <p >如果有其他需求 ,可以根据 <code >main.py</code > 的注释提示进行代码调用或修改! </p >
50
51
<pre >
51
52
# 测试链接
52
53
error_demo = "https://github.com/JoeanAmier/XHS_Downloader"
@@ -58,20 +59,27 @@ path = "" # 作品数据/文件保存根路径,默认值:项目根路径
58
59
folder_name = "Download" # 作品文件储存文件夹名称(自动创建),默认值:Download
59
60
user_agent = "" # 请求头 User-Agent
60
61
cookie = "" # 小红书网页版 Cookie,无需登录
61
- proxy = "" # 网络代理
62
- timeout = 5 # 网络请求超时限制 ,单位:秒,默认值:10
63
- chunk = 1024 * 1024 # 下载文件时,每次从服务器获取的数据块大小,单位:字节
62
+ proxy = None # 网络代理
63
+ timeout = 5 # 请求数据超时限制 ,单位:秒,默认值:10
64
+ chunk = 1024 * 1024 * 10 # 下载文件时,每次从服务器获取的数据块大小,单位:字节
64
65
max_retry = 2 # 请求数据失败时,重试的最大次数,单位:秒,默认值:5
65
- # async with XHS() as xhs:
66
- # pass # 使用默认参数
66
+ record_data = False # 是否记录作品数据至文件
67
+ image_format = "jpg" # 图文作品文件名称后缀
68
+ folder_mode = False # 是否将每个作品的文件储存至单独的文件夹
69
+ async with XHS() as xhs:
70
+ pass # 使用默认参数
67
71
async with XHS(path=path,
68
72
folder_name=folder_name,
69
73
user_agent=user_agent,
70
74
cookie=cookie,
71
75
proxy=proxy,
72
76
timeout=timeout,
73
77
chunk=chunk,
74
- max_retry=max_retry, ) as xhs: # 使用自定义参数
78
+ max_retry=max_retry,
79
+ record_data=record_data,
80
+ image_format=image_format,
81
+ folder_mode=folder_mode,
82
+ ) as xhs: # 使用自定义参数
75
83
download = True # 是否下载作品文件,默认值:False
76
84
# 返回作品详细信息,包括下载地址
77
85
print(await xhs.extract(error_demo, download)) # 获取数据失败时返回空字典
@@ -81,6 +89,7 @@ async with XHS(path=path,
81
89
</pre >
82
90
<h1 >⚙️ 配置文件</h1 >
83
91
<p >项目根目录下的 <code >settings.json</code > 文件,首次运行自动生成,可以自定义部分运行参数。</p >
92
+ <p >如果您的计算机没有合适的程序编辑 JSON 文件,建议使用 <a href =" https://try8.cn/tool/format/json " >JSON 在线工具</a > 编辑配置文件内容</p >
84
93
<table >
85
94
<thead >
86
95
<tr >
@@ -112,14 +121,14 @@ async with XHS(path=path,
112
121
<tr >
113
122
<td align =" center " >cookie</td >
114
123
<td align =" center " >str</td >
115
- <td align =" center " >小红书网页版 Cookie,无需登录</td >
124
+ <td align =" center " >小红书网页版 Cookie,< b > 无需登录</ b > </td >
116
125
<td align =" center " >默认 Cookie</td >
117
126
</tr >
118
127
<tr >
119
128
<td align =" center " >proxy</td >
120
129
<td align =" center " >str</td >
121
- <td align =" center " >设置代理 </td >
122
- <td align =" center " >无 </td >
130
+ <td align =" center " >设置程序代理 </td >
131
+ <td align =" center " >null </td >
123
132
</tr >
124
133
<tr >
125
134
<td align =" center " >timeout</td >
@@ -142,15 +151,27 @@ async with XHS(path=path,
142
151
<tr >
143
152
<td align =" center " >record_data</td >
144
153
<td align =" center " >bool</td >
145
- <td align =" center " >是否记录作品数据至文件 </td >
154
+ <td align =" center " >是否记录作品数据至 < code >TXT</ code > 文件 </td >
146
155
<td align =" center " >false</td >
147
156
</tr >
148
157
<tr >
149
158
<td align =" center " >image_format</td >
150
159
<td align =" center " >str</td >
151
- <td align =" center " >图文作品文件名称后缀,例如:< code >jpg</ code >、< code >png</ code > </td >
160
+ <td align =" center " >图文作品文件名称后缀,不影响实际文件格式 </td >
152
161
<td align =" center " >webp</td >
153
162
</tr >
163
+ <tr >
164
+ <td align =" center " >video_format</td >
165
+ <td align =" center " >str</td >
166
+ <td align =" center " >视频作品文件名称后缀,不影响实际文件格式</td >
167
+ <td align =" center " >mp4</td >
168
+ </tr >
169
+ <tr >
170
+ <td align =" center " >folder_mode</td >
171
+ <td align =" center " >bool</td >
172
+ <td align =" center " >是否将每个作品的文件储存至单独的文件夹;文件夹名称与文件名称保持一致</td >
173
+ <td align =" center " >false</td >
174
+ </tr >
154
175
</tbody >
155
176
</table >
156
177
<h1 >🌐 Cookie</h1 >
0 commit comments