小红书作品采集下载完整攻略:XHS-Downloader 开源工具从入门到进阶
2026/8/20 9:43:49 网站建设 项目流程

小红书作品采集下载完整攻略:XHS-Downloader 开源工具从入门到进阶

【免费下载链接】XHS-Downloader小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接;采集小红书作品信息;提取小红书作品下载地址;下载小红书作品文件项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader

你有没有经历过这样的时刻:刷到一篇干货满满的小红书图文,想存进本地慢慢消化,却只能一张张长按保存;发现一个宝藏博主的系列视频,想全部收藏,手动操作半小时才下了三个;复制了一堆作品链接躺在备忘录里,真正要用时又忘了原出处。这种"收藏即吃灰"的循环,正是 XHS-Downloader 这款开源小红书作品采集下载工具要帮你打破的。

它能提取账号发布、收藏、点赞、专辑里的作品链接,采集作品信息,并批量下载图文、视频、动图文件。一句话概括:把小红书上的内容,变成你本地硬盘里井井有条的资产。接下来这份攻略,将带你完成从安装到进阶的完整旅程。

动手之前,先认识这位"作品管家"

与其说它是下载器,不如说它是一个"作品管家"。它替你完成四件最琐碎的事:

  • 采集:自动提取账号发布、收藏、点赞、专辑以及搜索结果中的作品链接,无需手动逐条复制;
  • 解析:获取作品标题、描述、类型、点赞收藏评论数量、发布时间、作者信息等完整数据;
  • 下载:图文、视频、LivePhoto 动图全类型支持,视频可按分辨率、码率或文件大小择优;
  • 归档:按作者自动分文件夹、按自定义规则命名、记录下载历史防止重复,让文件像图书馆一样整齐。

如果你只用一句话记住它:一个工具,把小红书内容从"网页上的数据"变成"本地可管理的资产"

出发前的准备:三条安装路线任选

动手前先选一条适合自己的路线,三条路的效果完全一致,区别只在环境要求。

路线A:开箱即用(零基础首选)

到项目 Releases 页面下载对应系统的程序压缩包,解压后双击运行main文件即可,不需要安装 Python。如果你用 macOS,首次运行前需在终端执行一次xattr -cr 项目文件夹路径来解除系统安全限制。这种方式下,文件默认保存到_internal\Volume\Download,配置在_internal\Volume\settings.json

路线B:源码运行(开发者的主场)

克隆代码后用 uv 一条命令同步依赖,这是官方推荐的方式:

git clone https://gitcode.com/gh_mirrors/xh/XHS-Downloader cd XHS-Downloader uv sync --no-dev uv run main.py

不想装 uv 也可以用 pip:先创建虚拟环境,再执行pip install -r requirements.txt安装依赖,最后python main.py启动。需要提醒的是,本项目要求 Python 3.12 及以上版本。

路线C:Docker 容器化(服务器部署)

docker pull joeanamier/xhs-downloader docker run -p 5556:5556 -v xhs_downloader_volume:/app/Volume -it joeanamier/xhs-downloader

容器会把数据保存在名为xhs_downloader_volume的卷中,方便迁移备份。

第一站:图形界面,三步完成下载

图形界面(TUI 模式)是绝大多数人的起点,它长这样:

整个界面只有一个核心输入框,操作逻辑简单到可以背下来:

  1. 把小红书作品链接粘贴到输入框(支持多个链接,用空格分隔);
  2. 点击"下载无水印作品文件"按钮;
  3. 坐等文件落盘。

如果你正在刷小红书、链接已经复制到剪贴板,直接点"读取剪贴板"按钮,程序会自动识别并填入链接。更贴心的是,它还能后台监听剪贴板:开启监听后,你在任何地方复制小红书链接,程序都会自动开始下载,全程不用回到窗口操作。

底部一排快捷键也值得记住:S打开设置、R查看下载记录、M开启监听、U检查更新。遇到想跳过但已经下载过的作品,程序会自动识别并跳过,绝不让硬盘堆积重复内容。

第二站:命令行,一条命令搞定批量任务

当你需要把下载嵌进脚本、定时任务,或者只想下载图文里的某几张图时,命令行模式(CLI)就该登场了。它把全部能力浓缩成一组参数:

最常用的三个场景如下。

批量下载多个作品——把链接用空格分隔放进引号,程序会自动提取有效链接逐个处理:

python main.py --url "链接1 链接2 链接3" --download true

只下载图文作品中的指定图片——用--index指定图片序号:

python main.py --url "作品链接" --download true --index 1 3 5

指定输出目录与高清 Cookie——用--work_path--cookie控制保存位置与画质:

python main.py --url "作品链接" --download true --work_path "D:\XHS" --cookie "你的Cookie"

实际运行时,程序会依次打印每条作品的处理状态和每个文件的下载结果,全程可视化反馈:

需要留意的是:设置--index后一次只处理一个链接;bool类型参数支持true/false/1/0/yes/no/on/off多种写法,非常宽容。

第三站:浏览器脚本,边逛边下载

命令行再方便,也绕不开"复制链接"这一步。有没有可能在小红书页面里直接操作?答案是用户脚本。

前提是浏览器安装了 Tampermonkey 扩展,然后把项目仓库static目录下的XHS-Downloader.js安装为脚本。安装后在任意小红书页面右下角会出现脚本入口,菜单长这样:

脚本最出彩的能力是批量提取链接

  • 进入某位博主主页,一键提取他发布、收藏、点赞、专辑里的全部作品链接;
  • 在搜索结果页,一键提取所有作品链接和用户链接;
  • 提取结果直接写入剪贴板,粘贴给程序就能批量下载。

它还能自动滚动页面直至加载全部作品,再配合"文件打包下载"选项,一次把整套内容打包带走。如果你在本地把程序设置为服务器模式(配置文件里script_server设为true,保持程序后台运行),浏览器里点一下"推送下载任务",链接就会直接发给程序处理,真正的"边逛边下载"。

提示:自动滚动功能默认关闭,因为频繁自动滚动可能被平台识别为异常操作,需要时再手动开启并控制滚动次数。

第四站:把下载能力变成接口,喂给你的程序或AI

如果你想让其他程序、脚本甚至 AI 助手调用下载能力,项目提供了两种服务器模式,用python main.py apipython main.py mcp启动即可。

API 模式启动后,访问http://127.0.0.1:5556/docs可看到自动生成的交互式接口文档。核心接口是POST /xhs/detail,一段简单的 Python 代码就能接入:

import requests resp = requests.post( "http://127.0.0.1:5556/xhs/detail", json={ "url": "小红书作品链接", "download": True, # 是否下载文件 "index": [1, 3, 5], # 只下载第1、3、5张图 "skip": False, # 是否跳过有下载记录的作品 }, timeout=10, ) print(resp.json())

这段代码能帮你做什么?在你自己的程序里,把作品链接交给本地服务,就能拿到结构化作品信息并触发下载,适合做内容采集管道或自动化工具。

MCP 模式则是给 AI 助手准备的。在支持 MCP 的客户端里添加一个服务器,填上 URLhttp://127.0.0.1:5556/mcp/

配置完成后,你就能直接用自然语言指挥 AI:"帮我看看这个链接的作品信息""下载这篇图文的第2张图片"。AI 会调用工具完成任务并返回结果:

Docker 部署同样支持这两种模式,只需在启动命令末尾加上python main.py apipython main.py mcp

让工具更懂你:配置文件与高清画质解锁

程序的全部行为都由./Volume/settings.json控制,首次运行自动生成。几个值得认真设置的参数:

参数作用示例值
name_format文件命名规则,支持点赞数、作品ID、发布时间等十余个字段发布时间 作者昵称 作品标题
image_format图文下载格式:AUTO/PNG/WEBP/JPEG/HEICWEBP
video_preference视频择优:分辨率/码率/文件大小优先resolution
author_archive按作者分文件夹归档,文件夹名为"作者ID_作者昵称"true
mapping_data作者别名映射,如{"作者ID": "我的偶像"}见说明
download_record记录已下载作品ID,重复自动跳过true

这套配置里藏着一个很妙的设计:开启作者归档后,如果作者改了昵称,程序会自动更新已下载文件里的昵称部分;你还可以用mapping_data给作者起"外号",归档时直接用别名。搭配write_mtime开启,文件修改时间会被改写为作品发布时间,按时间排序查看时无比丝滑。

还有一个直接影响画质的关键配置:Cookie。不配置 Cookie 时,视频只能下载低分辨率版本;配置后无需登录账号即可解锁高清画质。获取步骤很简单:

  1. 浏览器打开小红书 explore 页面,按F12打开开发者工具;
  2. 切到"网络"选项卡,勾选"保留日志",输入过滤条件cookie-name:web_session
  3. 点击任意一篇作品,选中产生的请求,在请求头的 Cookie 字段复制完整内容;
  4. 粘贴到配置文件的cookie参数即可。

三类人的典型落地场景

普通用户——追更博主的内容备份:把喜欢的博主加入关注,每周用用户脚本提取他的最新发布链接,粘贴给程序批量下载,配上自动去重,你的本地素材库会和博主的更新保持同步。

进阶用户——竞品内容调研:用脚本提取某个赛道头部账号的发布与收藏链接,程序按作者归档下载,再开启record_data把作品数据存入 SQLite 数据库,点赞、评论、发布时间随手可查,写报告时直接导出数据。

开发者——内容采集管道:把 API 模式跑在服务器上,你的爬虫或业务系统通过POST /xhs/detail提交链接,统一收口作品信息与文件下载,再对接自己的存储和检索系统。

高频问题速答

Q:下载的视频画质很低怎么办?A:说明还没配置 Cookie。按上文步骤配置一次(无需登录),即可获取高清视频文件。

Q:想批量下载某位博主的全部作品,最快的方式是什么?A:两步走——先用用户脚本在博主主页一键提取全部发布作品链接(可自动滚动加载),再把链接丢给程序批量下载。脚本负责"找",程序负责"下"。

Q:下载的文件存在哪里?怎么改?A:默认在./Volume/Download/。在配置文件中修改work_path(根路径)和folder_name(文件夹名)即可;开启author_archive后文件会按作者分目录存放。

Q:重复作品会自动跳过,想重新下载怎么办?A:下载记录默认开启,重复作品会直接跳过。想强制重下,删除./Volume/ExploreID.db中对应的作品 ID,或把download_record改为false(此时改为检测文件是否存在,文件缺失才重下)。

Q:都支持哪些链接格式?A:explore/作品IDdiscovery/item/作品IDuser/profile/作者ID/作品IDxhslink.com短链都支持,单次可传多个链接,空格分隔,程序会自动提取有效部分。

Q:只想下载图文里的某几张图,可以吗?A:可以。命令行用--index 1 3 5,API 用index: [1, 3, 5],MCP 直接告诉 AI"下载第2张图"即可。

性能调优与合规使用提醒

想让下载更快更稳,可以在配置文件里微调三个参数:timeout(请求超时秒数)、max_retry(失败重试次数)、chunk(单次分块大小,默认 2MB)。网络不畅时可通过proxy设置代理;程序内置了请求延时机制,主动避免高频请求。下载中断也不用慌,程序支持断点续传。

关于合规,请务必记住这几点:

  • 遵守小红书平台规则,合理控制请求频率,尤其慎用自动滚动等易被识别为自动化操作的开关;
  • 仅下载个人学习、备份或已获授权的内容,不传播、不商用未经授权的作品;
  • 尊重原作者版权,涉及版权内容的二次开发请自行评估法律风险;
  • 项目采用 GPL v3 开源协议,二次分发需遵守协议要求。

架构速览与二次开发入口

如果你想改代码,先从整体结构入手:

source/ ├── application/ # 下载、请求、图像、视频等业务逻辑 ├── module/ # 数据模型、设置管理、下载记录、工具函数 ├── CLI/ # 命令行入口 ├── TUI/ # 终端图形界面 └── translation/ # 中英文多语言支持

二次开发的入口在example.py,核心是XHS这个对象。想定制一套下载逻辑,几十行代码就能搞定:

from asyncio import run from source import XHS async def main(): async with XHS( work_path="./my_volume", folder_name="小红书", name_format="发布时间 作者昵称 作品标题", image_format="WEBP", author_archive=True, download_record=True, ) as xhs: result = await xhs.extract("作品链接", download=True) print(result) run(main())

这段代码能帮你做什么?它展示了二次开发的基本姿势:实例化XHS并传入自己的参数,调用extract方法获取作品信息并下载文件,返回结果可直接对接你的业务逻辑。下载记录、重试、文件命名这些脏活累活,框架全都包了。

现在就把小红书内容变成你的本地资产

回顾这趟旅程:图形界面负责零门槛上手,命令行负责批量与自动化,用户脚本打通了浏览器体验,API 与 MCP 让能力可以被任何程序调用,而配置文件则把命名、归档、去重这些细节打磨到"省心"的程度。加上完整的数据采集、断点续传、多语言支持和活跃的开源社区维护,它已经是一套相当成熟的内容管理基础设施。

如果你还在用截图和录屏保存小红书内容,是时候换一种方式了。克隆项目、装好依赖、跑起来,把第一条链接交给它试试——你会发现,曾经最头疼的内容整理,原来可以这么顺畅。

现在就动手,从下载你的第一条小红书作品开始。🚀

【免费下载链接】XHS-Downloader小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接;采集小红书作品信息;提取小红书作品下载地址;下载小红书作品文件项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询