能力标签
XHS-Downloader MCP工具
🛠
AI工具

XHS-Downloader MCP工具

基于 Python · 开源免费,本地部署,数据完全自主可控
英文名:XHS-Downloader
⭐ 11.1k Stars 🍴 1.7k Forks 💻 Python 📄 GPL-3.0 🏷 AI 8.2分
8.2AI 综合评分
小红书爬虫内容采集API工具FastAPI开源
✦ AI Skill Hub 推荐

经 AI Skill Hub 精选评估,XHS-Downloader MCP工具 获评「强烈推荐」。在 GitHub 上收获超过 11.1k 颗 Star,这款AI工具在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 8.2 分,适合有一定技术背景的用户使用。

📚 深度解析

XHS-Downloader MCP工具 是一款基于 Python 的开源工具,在 GitHub 上收获 11k+ Star,是小红书爬虫、内容采集、API工具、FastAPI领域中的优质开源项目。开源工具的最大优势在于代码完全透明,你可以审计每一行代码的安全性,也可以根据自身需求进行二次开发和定制。

**为什么要使用开源工具而非商业 SaaS?**
对于个人开发者和有隐私需求的用户,本地部署的开源工具意味着数据不离本机,不受第三方服务商的数据政策约束。同时,开源工具通常没有使用次数限制和月度费用,一次安装即可长期使用,对于高频使用场景的总拥有成本(TCO)远低于订阅制商业工具。

**安装与环境准备**
XHS-Downloader MCP工具 依赖 Python 运行环境。建议通过 pyenv(Python)或 nvm(Node.js)管理 Python 版本,避免全局环境污染。对于新手用户,推荐先创建虚拟环境(python -m venv venv && source venv/bin/activate),再安装依赖,这样即使出现问题也可以随时删除虚拟环境重新开始,不影响系统稳定性。

**社区与维护**
GitHub Issue 和 Discussion 是获取帮助的最快渠道。在提问前建议先检查 Closed Issues(已关闭的问题),大多数常见问题都已有解答。遇到 Bug 时,提供 pip list 的输出、完整错误堆栈和最小可复现示例,能显著提高开发者响应速度。AI Skill Hub 将持续追踪 XHS-Downloader MCP工具 的版本更新,及时通知重要功能变化。

📋 工具概览

专业的小红书链接提取与内容采集工具,支持账号作品、收藏、点赞、搜索结果等多维度数据获取。提供FastAPI接口和Docker部署方案,适合内容研究、数据分析和爬虫开发者使用。

XHS-Downloader MCP工具 是一款基于 Python 开发的开源工具,专注于 小红书爬虫、内容采集、API工具 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

GitHub Stars
⭐ 11.1k
开发语言
Python
支持平台
Windows / macOS / Linux
维护状态
活跃维护,更新频繁
开源协议
GPL-3.0
AI 综合评分
8.2 分
工具类型
AI工具
Forks
1.7k

📖 中文文档

以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

专业的小红书链接提取与内容采集工具,支持账号作品、收藏、点赞、搜索结果等多维度数据获取。提供FastAPI接口和Docker部署方案,适合内容研究、数据分析和爬虫开发者使用。

XHS-Downloader MCP工具 是一款基于 Python 开发的开源工具,专注于 小红书爬虫、内容采集、API工具 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

📌 核心特色
  • 开源免费,支持本地部署,数据完全自主可控
  • 活跃的 GitHub 开源社区,持续迭代更新
  • 提供详细文档和使用示例,新手友好
  • 支持自定义配置,灵活适配不同使用环境
  • 可作为基础组件集成进现有技术栈或进行二次开发
🎯 主要使用场景
  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一: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('安装成功')"
📋 安装步骤说明
  1. 访问 GitHub 仓库页面
  2. 按照 README 文档完成依赖安装
  3. 根据系统环境完成初始化配置
  4. 参考官方示例或文档开始使用
  5. 遇到问题可在 GitHub Issues 中查找解答
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 命令行使用
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"
📑 README 深度解析 真实文档 完整度 36/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

简介

XHS-Downloader

XHS-Downloader

简体中文 | English

JoeanAmier%2FXHS-Downloader | Trendshift
GitHub GitHub forks GitHub Repo stars GitHub code size in bytes GitHub release (with filter)
Static Badge Static Badge Static Badge GitHub all releases

🔥 小红书链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品链接、用户链接;采集小红书作品信息;提取小红书作品下载地址;下载小红书作品文件!

🔥 “小红书”、“XiaoHongShu”、“RedNote” 含义相同,本项目统称为 “小红书”

📑 项目功能

项目程序与用户脚本功能清单(点击展开)
    程序功能
  • ✅ 采集小红书作品信息
  • ✅ 提取小红书作品下载地址
  • ✅ 下载小红书作品文件
  • ✅ 下载小红书 livePhoto 文件
  • ✅ 自动跳过已下载的作品文件
  • ✅ 作品文件完整性处理机制
  • ✅ 自定义图文作品文件下载格式
  • ✅ 持久化储存作品信息至文件
  • ✅ 作品文件储存至单独文件夹
  • ✅ 后台监听剪贴板下载作品
  • ✅ 记录已下载作品 ID
  • ✅ 支持命令行下载作品文件
  • ☑️ 从浏览器读取 Cookie
  • ✅ 自定义文件名称格式
  • ✅ 支持 API 调用功能
  • ✅ 支持 MCP 调用功能
  • ✅ 支持文件断点续传下载
  • ✅ 智能识别作品文件类型
  • ✅ 支持设置作者备注
  • ✅ 自动更新作者昵称
    脚本功能
  • ✅ 下载小红书作品文件
  • ✅ 提取推荐页面作品链接
  • ✅ 提取账号发布作品链接
  • ✅ 提取账号收藏作品链接
  • ✅ 提取账号点赞作品链接
  • ✅ 提取账号专辑作品链接
  • ✅ 提取搜索结果作品链接
  • ✅ 提取搜索结果用户链接

📸 程序截图

前往 bilibili 观看演示前往 YouTube 观看演示



🔗 支持链接

  • https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXX
  • https://www.xiaohongshu.com/discovery/item/作品ID?xsec_token=XXX
  • https://www.xiaohongshu.com/user/profile/作者ID/作品ID?xsec_token=XXX
  • https://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 文件夹。

方案二:下载并解压文件(不要运行程序),复制全部文件,直接覆盖旧版本文件。

⌨️ 源码运行

  1. 安装 ≥3.12 版本的 Python 解释器
  2. 下载最新的源码或 Releases 发布的源码至本地
    1. 使用 pip 安装项目依赖
    2. 运行 python -m venv venv 命令创建虚拟环境(可选)
    3. 运行 .\venv\Scripts\activate.ps1 或者 venv\Scripts\activate 命令激活虚拟环境(可选)
    4. 运行 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 命令安装程序所需模块
    5. 运行 python .\main.py 或者 python main.py 命令启动 XHS-Downloader
      使用 uv 安装项目依赖(推荐)
    1. 运行 uv sync --no-dev 命令同步环境依赖
    2. 运行 uv run main.py 命令启动 XHS-Downloader

⌨️ Docker 运行

  1. 获取镜像
    • 方式一:使用 Dockerfile 文件构建镜像
    • 方式二:使用 docker pull joeanamier/xhs-downloader 命令拉取镜像
    • 方式三:使用 docker pull ghcr.io/joeanamier/xhs-downloader 命令拉取镜像
  2. 创建容器
    • TUI 模式:docker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:/app/Volume -it <镜像名称>
    • API 模式:docker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:/app/Volume -it <镜像名称> python main.py api
    • MCP 模式:docker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:/app/Volume -it <镜像名称> python main.py mcp

    • 注意:此处的 <镜像名称> 需与您在第一步中使用的镜像名称保持一致(joeanamier/xhs-downloaderghcr.io/joeanamier/xhs-downloader
  3. 运行容器
    • 启动容器:docker start -i 容器名称/容器 ID
    • 重启容器:docker restart -i 容器名称/容器 ID

Docker 运行项目时不支持 命令行调用模式,无法使用 读取剪贴板监听剪贴板 功能,可以正常粘贴内容,其他功能如有异常请反馈!

🛠 命令行模式

项目支持命令行运行模式,若想要下载图文作品的部分图片,可以使用此模式设置需要下载的图片序号!

注意:未设置 --index 参数时,支持传入多个作品链接,全部链接需要使用引号包围,链接之间使用空格分隔;已设置 --index 参数时,不支持传入多个作品链接,即使传入多个作品链接,程序仅处理首个作品链接!

bool 类型参数支持使用 truefalse10yesnoonoff(不区分大小写)来设置。

从浏览器读取 Cookie

该功能已失效,请参考 获取 Cookie 教程!

可以使用命令行实现 从浏览器读取 Cookie 并写入配置文件!

命令示例:python .\main.py --browser_cookie Chrome --update_settings

兼容性提醒:此功能依赖的第三方模块已长期未更新,可能无法正常支持最新浏览器版本。若功能出现异常,请尝试手动获取 Cookie!



🖥 服务器模式

服务器模式包含 API 模式和 MCP 模式!

API 模式

启动:运行命令: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())

MCP 模式

启动:运行命令:python .\main.py mcp

关闭:按下 Ctrl + C 关闭服务器

MCP 配置示例

[//]: # (<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 自动完成基于最新源码的程序构建和打包!

---

使用步骤

Q3: 我可以直接使用主仓库的 Actions 吗?

A: 由于权限限制,您无法直接触发主仓库的 Actions。请通过 Fork 仓库的方式执行打包流程

</details>

Q1: 为什么我无法触发工作流?

A: 请确认您已按照步骤 启用 Actions,否则 GitHub 会禁止运行工作流

Actions 常见问题

🎯 aiskill88 AI 点评 A 级 2026-05-21

活跃度高、功能完整的小红书采集工具。11k+星标体现社区认可度,FastAPI+Docker方案专业。但需关注反爬风险和法律合规性。

📚 实用指南(长尾问题)
适合谁
  • 需要 XHS-Downloader 解决具体问题的开发者与运营人员
最佳实践
  • 先在测试环境跑通最小用例,再接入生产数据
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • Python 依赖冲突:建议用 venv / uv 隔离环境
部署方案
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
XHS-Downloader 中文教程XHS-Downloader 安装报错怎么办XHS-Downloader 与同类工具对比XHS-Downloader 最佳实践XHS-Downloader 适合谁用

⚡ 核心功能

👥 适合谁
  • 需要 XHS-Downloader 解决具体问题的开发者与运营人员
⭐ 最佳实践
  • 先在测试环境跑通最小用例,再接入生产数据
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • Python 依赖冲突:建议用 venv / uv 隔离环境

👥 适合人群

AI 技术爱好者研究人员和学生开发者和工程师技术创业者

🎯 使用场景

  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发

⚖️ 优点与不足

✅ 优点
  • +GitHub 11.1k Star,社区高度认可
  • +GPL-3.0 协议,可免费商用
  • +完全开源免费,无授权费用
  • +本地部署,数据完全自主可控
  • +开发者社区支持,遇问题可查可问
⚠️ 不足
  • 安装和初始配置可能需要一定技术基础
  • 功能完整性通常不如成熟商业产品
  • 技术支持主要依赖开源社区,响应速度不稳定
⚠️ 使用须知

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

⚠️ GPL 3.0 — 强 Copyleft,衍生作品须开源,含专利保护条款,不可闭源使用。

🔗 相关工具推荐

📚 相关教程推荐
📰 相关 AI 新闻
🍿 AI 圈相关吃瓜
🗺️ 相关解决方案
🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合

❓ 常见问题 FAQ

支持账号发布/收藏/点赞作品、搜索结果、用户信息等多维度链接和详细信息提取。
💡 AI Skill Hub 点评

AI Skill Hub 点评:XHS-Downloader MCP工具 的核心功能完整,质量优秀。对于AI 技术爱好者来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。

📚 深入学习 XHS-Downloader MCP工具
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 XHS-Downloader
原始描述 开源MCP工具:小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接;采集小红书作品信息;。⭐11.1k · Python
Topics 小红书爬虫内容采集API工具FastAPI开源
GitHub https://github.com/JoeanAmier/XHS-Downloader
License GPL-3.0
语言 Python
🔗 原始来源
🐙 GitHub 仓库  https://github.com/JoeanAmier/XHS-Downloader 🌐 官方网站  https://discord.com/invite/ZYtmgKud9Y

收录时间:2026-05-13 · 更新时间:2026-05-16 · License:GPL-3.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。

📺 订阅 AI Skill Hub Daily Telegram 频道
每天 8 条精选 AI Skill、MCP、Agent 与自动化工具推送
加入频道 →