经 AI Skill Hub 精选评估,XHS-Downloader MCP工具 获评「强烈推荐」。在 GitHub 上收获超过 11.1k 颗 Star,这款AI工具在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 8.2 分,适合有一定技术背景的用户使用。
专业的小红书链接提取与内容采集工具,支持账号作品、收藏、点赞、搜索结果等多维度数据获取。提供FastAPI接口和Docker部署方案,适合内容研究、数据分析和爬虫开发者使用。
XHS-Downloader MCP工具 是一款基于 Python 开发的开源工具,专注于 小红书爬虫、内容采集、API工具 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
专业的小红书链接提取与内容采集工具,支持账号作品、收藏、点赞、搜索结果等多维度数据获取。提供FastAPI接口和Docker部署方案,适合内容研究、数据分析和爬虫开发者使用。
XHS-Downloader MCP工具 是一款基于 Python 开发的开源工具,专注于 小红书爬虫、内容采集、API工具 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
# 方式一:pip 安装(推荐)
pip install xhs-downloader
# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install xhs-downloader
# 方式三:从源码安装(获取最新功能)
git clone https://github.com/JoeanAmier/XHS-Downloader
cd XHS-Downloader
pip install -e .
# 验证安装
python -c "import xhs_downloader; print('安装成功')"
# 命令行使用
xhs-downloader --help
# 基本用法
xhs-downloader input_file -o output_file
# Python 代码中调用
import xhs_downloader
# 示例
result = xhs_downloader.process("input")
print(result)
# xhs-downloader 配置文件示例(config.yml) app: name: "xhs-downloader" debug: false log_level: "INFO" # 运行时指定配置文件 xhs-downloader --config config.yml # 或通过环境变量配置 export XHS_DOWNLOADER_API_KEY="your-key" export XHS_DOWNLOADER_OUTPUT_DIR="./output"
🔥 小红书链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品链接、用户链接;采集小红书作品信息;提取小红书作品下载地址;下载小红书作品文件!
🔥 “小红书”、“XiaoHongShu”、“RedNote” 含义相同,本项目统称为 “小红书”
前往 bilibili 观看演示;前往 YouTube 观看演示
https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXXhttps://www.xiaohongshu.com/discovery/item/作品ID?xsec_token=XXXhttps://www.xiaohongshu.com/user/profile/作者ID/作品ID?xsec_token=XXXhttps://xhslink.com/分享码支持单次输入多个作品链接,链接之间使用空格分隔;程序会自动提取有效链接,无需额外处理!
⭐ 推荐使用 Windows 终端 (Windows 11 默认终端)运行程序以便获得最佳显示效果!
如果仅需下载作品文件,建议选择 程序运行 或 Docker 运行;如果有其他需求,建议选择 源码运行!
⚠️ Cookie 配置为非强制项;如遇功能异常,建议配置或更新 Cookie 后再次尝试!
⚠️ 未设置 Cookie 时,视频作品只能下载低分辨率文件;建议配置 Cookie 以获取更高画质(无需登录账号)!
⭐ Mac OS、Windows 10 及以上用户可前往 Releases 或者 Actions 下载程序压缩包,解压后打开程序文件夹,双击运行 main 即可使用。
⭐ 本项目包含自动构建可执行文件的 GitHub Actions,使用者可以随时使用 GitHub Actions 将最新源码构建为可执行文件!
⭐ 自动构建可执行文件教程请查阅本文档的 构建可执行文件指南 部分;如果需要更加详细的图文教程,请 查阅文章!
注意:由于 Mac OS 平台的可执行文件 main 未经过代码签名,首次运行时会受到系统安全限制。请先在终端执行 xattr -cr 项目文件夹路径 命令移除安全标记,执行一次后即可正常运行。
若通过此方式使用程序,文件默认下载路径为:.\_internal\Volume\Download;配置文件路径为:.\_internal\Volume\settings.json
方案一:下载并解压文件,将旧版本的 _internal\Volume 文件夹复制到新版本的 _internal 文件夹。
方案二:下载并解压文件(不要运行程序),复制全部文件,直接覆盖旧版本文件。
≥3.12 版本的 Python 解释器python -m venv venv 命令创建虚拟环境(可选).\venv\Scripts\activate.ps1 或者 venv\Scripts\activate 命令激活虚拟环境(可选)pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 命令安装程序所需模块python .\main.py 或者 python main.py 命令启动 XHS-Downloaderuv sync --no-dev 命令同步环境依赖uv run main.py 命令启动 XHS-DownloaderDockerfile 文件构建镜像docker pull joeanamier/xhs-downloader 命令拉取镜像docker pull ghcr.io/joeanamier/xhs-downloader 命令拉取镜像docker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:/app/Volume -it <镜像名称>docker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:/app/Volume -it <镜像名称> python main.py apidocker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:/app/Volume -it <镜像名称> python main.py mcp<镜像名称> 需与您在第一步中使用的镜像名称保持一致(joeanamier/xhs-downloader 或 ghcr.io/joeanamier/xhs-downloader)
docker start -i 容器名称/容器 IDdocker restart -i 容器名称/容器 IDDocker 运行项目时不支持 命令行调用模式,无法使用 读取剪贴板 与 监听剪贴板 功能,可以正常粘贴内容,其他功能如有异常请反馈!
项目支持命令行运行模式,若想要下载图文作品的部分图片,可以使用此模式设置需要下载的图片序号!
注意:未设置 --index 参数时,支持传入多个作品链接,全部链接需要使用引号包围,链接之间使用空格分隔;已设置 --index 参数时,不支持传入多个作品链接,即使传入多个作品链接,程序仅处理首个作品链接!
bool 类型参数支持使用 true、false、1、0、yes、no、on 或 off(不区分大小写)来设置。
该功能已失效,请参考 获取 Cookie 教程!
可以使用命令行实现 从浏览器读取 Cookie 并写入配置文件!
命令示例:python .\main.py --browser_cookie Chrome --update_settings
兼容性提醒:此功能依赖的第三方模块已长期未更新,可能无法正常支持最新浏览器版本。若功能出现异常,请尝试手动获取 Cookie!
服务器模式包含 API 模式和 MCP 模式!
启动:运行命令:python .\main.py api
关闭:按下 Ctrl + C 关闭服务器
访问 http://127.0.0.1:5556/docs 或者 http://127.0.0.1:5556/redoc;你会看到自动生成的交互式 API 文档!
请求接口:/xhs/detail
请求方法:POST
请求格式:JSON
请求参数:
| 参数 | 类型 | 含义 | 默认值 |
|---|---|---|---|
| url | str | 小红书作品链接,自动提取,不支持多链接;必需参数 | 无 |
| download | bool | 是否下载作品文件;设置为 true 将会耗费更多时间;可选参数 |
false |
| index | list[int] | 下载指定序号的图片文件,仅对图文作品生效;download 参数设置为 false 时不生效;可选参数 |
null |
| cookie | str | 请求数据时使用的 Cookie;可选参数 | 配置文件 cookie 参数 |
| proxy | str | 请求数据时使用的代理;可选参数 | 配置文件 proxy 参数 |
| skip | bool | 是否跳过存在下载记录的作品;设置为 true 将不会返回存在下载记录的作品数据;可选参数 |
false |
代码示例:
async def example_api():
"""通过 API 设置参数,适合二次开发"""
server = "http://127.0.0.1:5556/xhs/detail"
data = {
"url": "", # 必需参数
"download": True,
"index": [
3,
6,
9,
],
"proxy": "http://127.0.0.1:10808",
}
response = post(server, json=data, timeout=10)
print(response.json())
启动:运行命令:python .\main.py mcp
关闭:按下 Ctrl + C 关闭服务器
[//]: # (<h4>STDIO</h4>) <h4>Streamable HTTP</h4> <p><b>MCP URL:</b><code>http://127.0.0.1:5556/mcp/</code></p> <img src="static/screenshot/MCP配置示例.png" alt="MCP配置示例"> <h3>MCP 调用示例</h3> <details> <summary>MCP 功能及调用示例(点击展开)</summary> <h4><strong>获取小红书作品信息</strong></h4> <img src="static/screenshot/MCP获取数据.png" alt="MCP获取数据"> <hr> <h4><strong>下载小红书作品文件</strong></h4> <p>下载图文作品时可以指定需要下载的图片序号;默认不返回作品信息,如需返回作品信息,请在对话时明确表述。</p> <img src="static/screenshot/MCP下载文件1.png" alt="MCP下载文件"> <hr> <img src="static/screenshot/MCP下载文件2.png" alt="MCP下载文件"> </details> <h1>📜 其他说明</h1> <ul> <li>由于作品链接携带日期信息,使用先前日期获取的作品链接可能会被风控,建议下载作品文件时使用最新获取的作品链接</li> <li>如果需要程序使用代理请求数据,请在配置文件 <code>settings.json</code> 设置 <code>proxy</code> 参数</li> <li><del>Windows 系统需要以管理员身份运行程序才能读取 Chromium、Chrome、Edge 浏览器 Cookie</del></li> <li>如果开启保存作品数据至文件功能,作品数据默认储存至 <code>./Volume/Download/ExploreData.db</code> 文件</li> <li>程序下载记录数据储存至 <code>./Volume/ExploreID.db</code> 文件</li> <li>为了避免请求频率过高对平台服务器造成影响,本项目内置请求延时机制</li> </ul> <h1 id="user-scripts">🕹 用户脚本</h1> <p>如果您的浏览器安装了 <a href="https://www.tampermonkey.net/">Tampermonkey</a> 浏览器扩展程序,可以使用用户脚本体验项目功能!</p> <p>用户脚本链接(右键单击复制链接):<a href="https://raw.githubusercontent.com/JoeanAmier/XHS-Downloader/refs/heads/master/static/XHS-Downloader.js">master 分支</a>、<a href="https://raw.githubusercontent.com/JoeanAmier/XHS-Downloader/refs/heads/develop/static/XHS-Downloader.js">develop 分支</a></p> <img src="static/screenshot/脚本安装教程.png" alt=""> <hr> <details> <summary>查看 Tampermonkey 用户脚本截图(点击展开)</summary> <img src="static/screenshot/用户脚本截图1.png" alt=""> <hr> <img src="static/screenshot/用户脚本截图2.png" alt=""> <hr> <img src="static/screenshot/用户脚本截图3.png" alt=""> <hr> <img src="static/screenshot/用户脚本截图4.png" alt=""> </details> <p>提示:使用 XHS-Downloader 用户脚本批量提取作品链接,搭配 XHS-Downloader 程序可以实现批量下载作品文件!</p> <p><b>修改用户脚本语言</b></p> <img src="static/screenshot/脚本切换语言.png" alt="切换语言"> <h2>🌏 连接服务器</h2> <p>⭐ 本项目支持通过浏览器用户脚本与主程序联动,实现一键推送下载任务。</p> <ul><b>功能说明:</b> <li>在项目程序的配置文件中,需要将 <code>script_server</code> 参数设置为 <code>true</code></li> <li>保持项目程序在后台运行,它将作为服务器,接收用户脚本的指令(TUI、MCP 和 API 模式均支持)</li> <li>当您在浏览器中访问作品页面时,点击用户脚本菜单中的 <code>推送下载任务</code> 选项</li> <li>用户脚本会将下载任务发送给项目程序,由项目程序负责处理和下载文件</li> </ul> <h2>📜 脚本说明</h2> <ul> <li>下载小红书作品文件时,脚本需要花费时间处理文件,请等待片刻,请勿多次点击下载按钮</li> <li>提取账号发布、收藏、点赞、专辑作品链接时,脚本可以自动滚动页面直至加载全部作品</li> <li>提取推荐作品链接、搜索作品、用户链接时,脚本可以自动滚动指定次数加载更多内容,默认滚动次数:50 次</li> <li>自动滚动页面功能默认关闭;用户可以自由开启,并修改滚动页面次数,修改后立即生效</li> <li>如果未开启自动滚动页面功能,用户需要手动滚动页面以便加载更多内容后再进行其他操作</li> <li>支持作品文件打包下载;该功能默认开启,多个文件的作品将会以压缩包格式下载</li> <li>向服务器推送下载任务时,文件格式、名称规则等设置以服务器配置文件中的设置为准</li> <li>使用全局代理工具可能会导致脚本下载文件失败,如有异常,请尝试关闭代理工具,必要时向作者反馈</li> <li>XHS-Downloader 用户脚本仅实现可见即可得的数据采集功能,无任何收费功能和破解功能</li> </ul> <p><strong>自动滚动页面功能代码已重构,该功能默认关闭!启用该功能可能会被小红书检测为自动化操作,从而导致账号受到风控或封禁风险!</strong></p> <h1>💻 二次开发</h1> <p>如果有其他需求,可以根据 <code>example.py</code> 的注释提示进行代码调用或修改!</p> <pre> async def example(): """通过代码设置参数,适合二次开发""" # 示例链接 demo_link = "https://www.xiaohongshu.com/explore/XXX?xsec_token=XXX" # 实例对象 work_path = "D:\\" # 作品数据/文件保存根路径,默认值:项目根路径 folder_name = "Download" # 作品文件储存文件夹名称(自动创建),默认值:Download name_format = "作品标题 作品描述" user_agent = "" # User-Agent cookie = "" # 小红书网页版 Cookie,无需登录,可选参数,登录状态对数据采集有影响 proxy = None # 网络代理 timeout = 5 # 请求数据超时限制,单位:秒,默认值:10 chunk = 1024 1024 10 # 下载文件时,每次从服务器获取的数据块大小,单位:字节 max_retry = 2 # 请求数据失败时,重试的最大次数,单位:秒,默认值:5 record_data = False # 是否保存作品数据至文件 image_format = "WEBP" # 图文作品文件下载格式,支持:AUTO、PNG、WEBP、JPEG、HEIC folder_mode = False # 是否将每个作品的文件储存至单独的文件夹 image_download = True # 图文、图集作品文件下载开关 video_download = True # 视频作品文件下载开关 live_download = False # 图文动图文件下载开关 download_record = True # 是否记录下载成功的作品 ID language = "zh_CN" # 设置程序提示语言 author_archive = True # 是否将每个作者的作品存至单独的文件夹 write_mtime = True # 是否将作品文件的 修改时间 修改为作品的发布时间 # read_cookie = None # 读取浏览器 Cookie,支持设置浏览器名称(字符串)或者浏览器序号(整数),设置为 None 代表不读取 # async with XHS() as xhs: # pass # 使用默认参数 async with XHS( work_path=work_path, folder_name=folder_name, name_format=name_format, 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, image_download=image_download, video_download=video_download, live_download=live_download, download_record=download_record, language=language, # read_cookie=read_cookie, author_archive=author_archive, write_mtime=write_mtime, ) as xhs: # 使用自定义参数 download = True # 是否下载作品文件,默认值:False # 返回作品详细信息,包括下载地址 # 获取数据失败时返回空字典 print( await xhs.extract( demo_link, download, index=[ 1, 2, 5, ], ) ) </pre> <h1>📋 读取剪贴板</h1> <p>项目使用 <code>pyperclip</code> 实现读取剪贴板功能,该模块在不同的系统上会有差异。</p> <p>在 Windows 上,不需要额外的模块。</p> <p>在 Mac 上,该模块使用 pbcopy 和 pbpaste 命令,这些命令应该随操作系统一起提供。</p> <p>在 Linux 上,该模块使用 xclip 或 xsel 命令,这些命令应该随操作系统一起提供。否则,请运行 "sudo apt-get install xclip" 或 "sudo apt-get install xsel"(注意:xsel 似乎并不总是有效)</p> <p>在其他 Linux 系统上,你需要安装 qtpy 或 PyQT5 模块。</p> <h1>⚙️ 配置文件</h1> <p>项目根目录下的 <code>./Volume/settings.json</code> 文件,首次运行自动生成,可以自定义程序运行参数;如果设置了无效的参数值,程序将会使用参数默认值!</p> <p>如果您在程序界面修改配置时无法正常交互,可以直接编辑配置文件;如果您的计算机没有合适的程序编辑 JSON 文件,建议使用 <a href="https://www.toolhelper.cn/JSON/JSONFormat">在线工具</a> 编辑配置文件内容,修改后需要重启软件才能生效。</p> <table> <thead> <tr> <th align="center">参数</th> <th align="center">类型</th> <th align="center">含义</th> <th align="center">默认值</th> </tr> </thead> <tbody> <tr> <td align="center">mapping_data</td> <td align="center">str: str</td> <td align="center"><sup><a href="#author_archive">#</a></sup>作者别名映射表,格式:<code>作者ID: 作者别名</code></td> <td align="center">无</td> </tr> <tr> <td align="center">work_path</td> <td align="center">str</td> <td align="center">作品数据 / 文件保存根路径</td> <td align="center">项目根路径/Volume</td> </tr> <tr> <td align="center">folder_name</td> <td align="center">str</td> <td align="center">作品文件储存文件夹名称</td> <td align="center">Download</td> </tr> <tr> <td align="center">name_format</td> <td align="center">str</td> <td align="center">作品文件名称格式,字段之间使用空格分隔,支持字段:<code>收藏数量</code>、<code>评论数量</code>、<code>分享数量</code>、<code>点赞数量</code>、<code>作品标签</code>、<code>作品ID</code>、<code>作品标题</code>、<code>作品描述</code>、<code>作品类型</code>、<code>发布时间</code>、<code>最后更新时间</code>、<code>作者昵称</code>、<code>作者ID</code></td> <td align="center"><code>发布时间 作者昵称 作品标题</code></td> </tr> <tr> <td align="center">user_agent</td> <td align="center">str</td> <td align="center">浏览器 User Agent</td> <td align="center">内置 Chrome User Agent</td> </tr> <tr> <td align="center">cookie</td> <td align="center">str</td> <td align="center">小红书网页版 Cookie,<b>无需登录,非必需参数!</b></td> <td align="center">无</td> </tr> <tr> <td align="center">proxy</td> <td align="center">str</td> <td align="center">设置程序代理</td> <td align="center">null</td> </tr> <tr> <td align="center">timeout</td> <td align="center">int</td> <td align="center">请求数据超时限制,单位:秒</td> <td align="center">10</td> </tr> <tr> <td align="center">chunk</td> <td align="center">int</td> <td align="center">下载文件时,每次从服务器获取的数据块大小,单位:字节</td> <td align="center">2097152(2 MB)</td> </tr> <tr> <td align="center">max_retry</td> <td align="center">int</td> <td align="center">请求数据失败时,重试的最大次数,单位:秒</td> <td align="center">5</td> </tr> <tr> <td align="center">record_data</td> <td align="center">bool</td> <td align="center">是否保存作品数据至文件,保存格式:<code>SQLite</code></td> <td align="center">false</td> </tr> <tr> <td align="center">image_format</td> <td align="center">str</td> <td align="center">图文作品文件下载格式,支持:<code>AUTO</code>、<code>PNG</code>、<code>WEBP</code>、<code>JPEG</code>、<code>HEIC</code><br><strong>部分作品没有 <code>HEIC</code> 格式的文件,此时下载的文件可能为 <code>WEBP</code> 格式!</strong><br><strong>设置为 <code>AUTO</code> 时表示动态格式,实际格式取决于服务器响应数据!</strong></td> <td align="center">JPEG</td> </tr> <tr> <td align="center">image_download</td> <td align="center">bool</td> <td align="center">图文、图集作品文件下载开关</td> <td align="center">true</td> </tr> <tr> <td align="center">video_download</td> <td align="center">bool</td> <td align="center">视频作品文件下载开关</td> <td align="center">true</td> </tr> <tr> <td align="center">live_download</td> <td align="center">bool</td> <td align="center">图文动图文件下载开关</td> <td align="center">false</td> </tr> <tr> <td align="center">video_preference</td> <td align="center">str</td> <td align="center">视频作品文件下载偏好;含义:<code>resolution</code>:分辨率优先;<code>bitrate</code>:码率优先;<code>size</code>:文件大小优先</td> <td align="center">resolution</td> </tr> <tr> <td align="center">folder_mode</td> <td align="center">bool</td> <td align="center">是否将每个作品的文件储存至单独的文件夹;文件夹名称与文件名称保持一致</td> <td align="center">false</td> </tr> <tr> <td align="center">download_record</td> <td align="center">bool</td> <td align="center">是否记录下载成功的作品 ID,如果开启,程序将会自动跳过下载存在记录的作品</td> <td align="center">true</td> </tr> <tr> <td align="center">author_archive</td> <td align="center">bool</td> <td align="center"><sup><a href="#author_archive">#</a></sup>是否将每个作者的作品储存至单独的文件夹;文件夹名称为 <code>作者ID_作者昵称</code></td> <td align="center">false</td> </tr> <tr> <td align="center">write_mtime</td> <td align="center">bool</td> <td align="center">是否将作品文件的 <code>修改时间</code> 属性修改为作品的发布时间</td> <td align="center">false</td> </tr> <tr> <td align="center">language</td> <td align="center">str</td> <td align="center">设置程序语言,目前支持:<code>zh_CN</code>、<code>en_US</code></td> <td align="center">zh_CN</td> </tr> <tr> <td align="center">script_server</td> <td align="center">bool</td> <td align="center">是否开启用户脚本服务器,用于接收浏览器用户脚本的下载任务(TUI、MCP 和 API 模式生效)</td> <td align="center">false</td> </tr> </tbody> </table> <hr> <div id="author_archive"> <p>如果 <code>author_archive</code> 参数设置为 <code>true</code>,程序会把每个作者的作品储存至单独的文件夹;当作者的昵称发生变化时,程序会自动更新已下载作品文件名称中的作者昵称部分!</p> <p>除此之外,你还可以通过设置 <code>mapping_data</code> 参数为某个作者设置别名;如果对某个作者设置了别名,程序会使用你设置的作者别名去替代作者昵称!</p> </div> <hr> <p><b>其他说明:<code>user_agent</code>参数获取示例;强烈建议根据实际浏览器信息进行设置!</b></p> <img src="static/screenshot/请求头示例图.png" alt=""> <h1 id="cookie">🌐 Cookie</h1> <ol> <li>打开浏览器(可选无痕模式启动),访问 <code>https://www.xiaohongshu.com/explore</code></li> <li>登录小红书账号(可跳过)</li> <li>按下 <code>F12</code> 打开开发人员工具</li> <li>选择 <code>网络</code> 选项卡</li> <li>勾选 <code>保留日志</code></li> <li>在 <code>过滤</code> 输入框输入 <code>cookie-name:web_session</code></li> <li>选择 <code>Fetch/XHR</code> 筛选器</li> <li>点击小红书页面任意作品</li> <li>在 <code>网络</code> 选项卡选择任意数据包(如果无数据包,重复步骤7)</li> <li>全选复制 Cookie 写入程序或配置文件</li> </ol> <br> <img src="static/screenshot/获取Cookie示意图.png" alt=""> <h1>🗳 下载记录</h1> <p>XHS-Downloader 会将下载过的作品 ID 储存至数据库,当重复下载相同的作品时,XHS-Downloader 会自动跳过该作品的文件下载(即使作品文件不存在),如果想要重新下载作品文件,请先删除数据库中对应的作品 ID,再使用 XHS-Downloader 下载作品文件!</p> <p>该功能默认开启,如果关闭该功能,XHS-Downloader 会检查文件是否存在,若文件存在则跳过下载!</p> <h2>构建可执行文件指南</h2> <details> <summary><b>构建可执行文件指南(点击展开)</b></summary>
本指南将引导您通过 Fork 本仓库并执行 GitHub Actions 自动完成基于最新源码的程序构建和打包!
---
A: 由于权限限制,您无法直接触发主仓库的 Actions。请通过 Fork 仓库的方式执行打包流程
</details>
A: 请确认您已按照步骤 启用 Actions,否则 GitHub 会禁止运行工作流
活跃度高、功能完整的小红书采集工具。11k+星标体现社区认可度,FastAPI+Docker方案专业。但需关注反爬风险和法律合规性。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
⚠️ GPL 3.0 — 强 Copyleft,衍生作品须开源,含专利保护条款,不可闭源使用。
AI Skill Hub 点评:XHS-Downloader MCP工具 的核心功能完整,质量优秀。对于AI 技术爱好者来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | XHS-Downloader |
| 原始描述 | 开源MCP工具:小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接;采集小红书作品信息;。⭐11.1k · Python |
| Topics | 小红书爬虫内容采集API工具FastAPI开源 |
| GitHub | https://github.com/JoeanAmier/XHS-Downloader |
| License | GPL-3.0 |
| 语言 | Python |
收录时间:2026-05-13 · 更新时间:2026-05-16 · License:GPL-3.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。