XHS-Downloader: 免费;轻量;开源,基于 AIOHTTP 模块实现的小红书图文 / 视频作品采集工具
小红书作品采集工具:采集小红书作品信息;提取小红书作品下载地址;下载小红书无水印作品文件!
功能清单
✅ 采集小红书图文 / 视频作品信息
✅ 提取小红书图文 / 视频作品下载地址
✅ 下载小红书无水印图文 / 视频作品文件
✅ 自动跳过已下载的作品文件
✅ 作品文件完整性处理机制
✅ 持久化储存作品信息至文件
✅ 作品文件储存至单独文件夹
☑️ 后台监听剪贴板下载作品
☑️ 支持 API 调用功能
支持链接
https://www.xiaohongshu.com/explore/作品ID
https://www.xiaohongshu.com/discovery/item/作品ID
https://xhslink.com/分享码
支持单次输入多个作品链接,链接之间使用空格分隔。
关于终端
⭐ 推荐使用 Windows 终端 (Windows 11 自带默认终端)运行程序以便获得最佳显示效果!
🥣 使用方法
如果仅需下载无水印作品文件,建议选择 程序运行;如果有其他需求,建议选择 源码运行!
🖱 程序运行
Windows 10 及以上用户可前往 Releases 下载程序压缩包,解压后打开程序文件夹,双击运行 main.exe 即可使用。
若通过此方式使用程序,文件默认下载路径:.\_internal\Download;配置文件路径:.\_internal\settings.json
⌨️ 源码运行
安装版本号不低于 3.12 的 Python 解释器
运行 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 命令安装程序所需模块
下载本项目最新的源码或 Releases 发布的源码至本地
运行 main.py 即可使用
💻 二次开发
如果有其他需求,可以根据 main.py 的注释提示进行代码调用或修改!
# 测试链接
error_demo = "https://github.com/JoeanAmier/XHS_Downloader"
image_demo = "https://www.xiaohongshu.com/explore/63b275a30000000019020185"
video_demo = "https://www.xiaohongshu.com/explore/64edb460000000001f03cadc"
multiple_demo = f"{image_demo} {video_demo}"
# 实例对象
path = "" # 作品数据/文件保存根路径,默认值:项目根路径
folder_name = "Download" # 作品文件储存文件夹名称(自动创建),默认值:Download
user_agent = "" # 请求头 User-Agent
cookie = "" # 小红书网页版 Cookie,无需登录
proxy = None # 网络代理
timeout = 5 # 请求数据超时限制,单位:秒,默认值:10
chunk = 1024 * 1024 * 10 # 下载文件时,每次从服务器获取的数据块大小,单位:字节
max_retry = 2 # 请求数据失败时,重试的最大次数,单位:秒,默认值:5
record_data = False # 是否记录作品数据至文件
image_format = "jpg" # 图文作品文件名称后缀
folder_mode = False # 是否将每个作品的文件储存至单独的文件夹
async with XHS() as xhs:
pass # 使用默认参数
async with XHS(path=path,
folder_name=folder_name,
user_agent=user_agent,
cookie=cookie,
proxy=proxy,
timeout=timeout,
chunk=chunk,
max_retry=max_retry,
record_data=record_data,
image_format=image_format,
folder_mode=folder_mode,
) as xhs: # 使用自定义参数
download = True # 是否下载作品文件,默认值:False
# 返回作品详细信息,包括下载地址
print(await xhs.extract(error_demo, download)) # 获取数据失败时返回空字典
print(await xhs.extract(image_demo, download))
print(await xhs.extract(video_demo, download))
print(await xhs.extract(multiple_demo, download)) # 支持传入多个作品链接
参考