type
status
date
slug
summary
tags
category
icon
password
XHS-Downloader
XHS-Downloader
JoeanAmier • Updated Apr 6, 2024
简体中文 | English
🔥 小红书链接提取/作品采集工具:提取账号发布、收藏、点赞作品链接;提取搜索结果作品、用户链接;采集小红书作品信息;提取小红书作品下载地址;下载小红书无水印作品文件!
📑 项目功能
程序功能
- ✅ 采集小红书作品信息
- ✅ 提取小红书作品下载地址
- ✅ 下载小红书无水印作品文件
- ✅ 自动跳过已下载的作品文件
- ✅ 作品文件完整性处理机制
- ✅ 自定义图文作品文件下载格式
- ✅ 持久化储存作品信息至文件
- ✅ 作品文件储存至单独文件夹
- ✅ 后台监听剪贴板下载作品
- ✅ 记录已下载作品 ID
- ✅ 支持命令行下载作品文件
- ✅ 从浏览器读取 Cookie
- ☑️ 支持 API 调用功能
脚本功能
- ✅ 下载小红书无水印作品文件
- ✅ 提取发现页面作品链接
- ✅ 提取账号发布作品链接
- ✅ 提取账号收藏作品链接
- ✅ 提取账号点赞作品链接
- ✅ 提取搜索结果作品链接
- ✅ 提取搜索结果用户链接
📸 程序截图
🎥 点击图片观看演示视频
![notion image](https://github.com/JoeanAmier/XHS-Downloader/raw/master/static/screenshot/%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C%E6%88%AA%E5%9B%BECN1.png?t=e5afb98e-9ea3-4b2b-b82f-923554e9d318)
![notion image](https://github.com/JoeanAmier/XHS-Downloader/raw/master/static/screenshot/%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C%E6%88%AA%E5%9B%BECN2.png?t=df410aea-f97d-431f-8271-2e2517fb1680)
![notion image](https://github.com/JoeanAmier/XHS-Downloader/raw/master/static/screenshot/%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C%E6%88%AA%E5%9B%BECN3.png?t=f2751201-e1ae-41e0-b11e-861d6483eb27)
🔗 支持链接
https://www.xiaohongshu.com/explore/作品ID
https://www.xiaohongshu.com/discovery/item/作品ID
https://xhslink.com/分享码
支持单次输入多个作品链接,链接之间使用空格分隔。
🪟 关于终端
⭐ 推荐使用 Windows 终端 (Windows 11 默认终端)运行程序以便获得最佳显示效果!
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F13a69e84-de26-4e1c-b934-c9bf822b4ebc%2F757537d1-47ce-4180-b48b-c194b25cce40%2FUntitled.png?table=block&id=9df9385e-8274-4ee5-bd04-6a0c9b15dca9&t=9df9385e-8274-4ee5-bd04-6a0c9b15dca9&width=534&cache=v2)
🥣 使用方法
如果仅需下载无水印作品文件,建议选择 程序运行;如果有其他需求,建议选择 源码运行!
建议自行设置
cookie
参数,若不设置该参数,程序功能可能无法正常使用!🖱 程序运行
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
即可使用
🛠 命令行模式
项目支持命令行运行模式,若想要下载图文作品的部分图片,可以使用此模式传入需要下载的图片序号!
可以使用命令行从浏览器读取 Cookie 并写入配置文件!注意需要关闭对应浏览器才能读取数据!
bool
类型参数支持使用 true
、false
、1
、0
、yes
、no
、on
或 off
(不区分大小写)来设置。命令示例:
python .\main.py --browser_cookie Chrome --update_settings
![notion image](https://github.com/JoeanAmier/XHS-Downloader/raw/master/static/screenshot/%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%A8%A1%E5%BC%8F%E6%88%AA%E5%9B%BE1.png?t=d7c50604-3b11-4379-b532-1e622b0b0f30)
![notion image](https://github.com/JoeanAmier/XHS-Downloader/raw/master/static/screenshot/%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%A8%A1%E5%BC%8F%E6%88%AA%E5%9B%BE2.png?t=7d5fefba-1dfb-42ec-a47e-c8e4e4af1a93)
🕹 用户脚本
![notion image](https://github.com/JoeanAmier/XHS-Downloader/raw/master/static/screenshot/%E7%94%A8%E6%88%B7%E8%84%9A%E6%9C%AC%E6%88%AA%E5%9B%BE1.png?t=3168508a-34c3-4283-9fcd-f7a955085ad4)
![notion image](https://github.com/JoeanAmier/XHS-Downloader/raw/master/static/screenshot/%E7%94%A8%E6%88%B7%E8%84%9A%E6%9C%AC%E6%88%AA%E5%9B%BE2.png?t=102b90de-9e38-4aef-bc77-895e34bb4171)
如果您的浏览器安装了 Tampermonkey 浏览器扩展程序,可以添加 用户脚本,无需下载安装即可体验项目功能!
提示:使用 XHS-Downloader 用户脚本批量提取作品链接,搭配 XHS-Downloader 程序可以实现批量下载无水印作品文件!
💻 二次开发
如果有其他需求,可以根据
main.py
的注释提示进行代码调用或修改!async
函数是什么?async
函数是Python中的异步编程结构,允许你在函数中使用await
表达式来挂起函数的执行,直到等待的异步操作完成。这种机制使得程序可以在等待如网络请求等耗时操作的同时,继续执行其他任务,从而提高效率和性能。
使用async
关键字定义的函数被称为协程,它们通过事件循环来调度执行。在async
函数内部,可以使用await
来等待一个异步操作的结果,而不会阻塞整个程序的运行。这使得异步编程特别适合于I/O密集型或高延迟的场景,如网络通信和文件处理。
简而言之,async
函数是Python异步编程的核心,它通过提供非阻塞的操作来优化程序的执行流程。![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F13a69e84-de26-4e1c-b934-c9bf822b4ebc%2F2b8bf813-69ed-4eae-be4a-2ec056ffb29f%2FUntitled.png?table=block&id=e18728c1-7899-4c50-a063-fe5ef8af70db&t=e18728c1-7899-4c50-a063-fe5ef8af70db&width=534&cache=v2)
⚙️ 配置文件
项目根目录下的
settings.json
文件,首次运行自动生成,可以自定义部分运行参数。参数 | 类型 | 含义 | 默认值 |
work_path | str | 作品数据 / 文件保存根路径 | 项目根路径 |
folder_name | str | 作品文件储存文件夹名称 | 下载 |
user_agent | str | 请求头 User-Agent | 默认 UA |
cookie | str | 小红书网页版 Cookie,无需登录 | 无 |
proxy | str | 设置程序代理 | null |
timeout | int | 请求数据超时限制,单位:秒 | 10 |
chunk | int | 下载文件时,每次从服务器获取的数据块大小,单位:字节 | 1048576(1 MB) |
max_retry | int | 请求数据失败时,重试的最大次数,单位:秒 | 5 |
record_data | bool | 是否保存作品数据至文件,保存格式: SQLite | false |
image_format | str | 图文作品文件下载格式,支持: PNG 、WEBP | PNG |
folder_mode | bool | 是否将每个作品的文件储存至单独的文件夹;文件夹名称与文件名称保持一致 | false |
language | str | 设置程序语言,目前支持: zh_CN 、en_GB | zh_CN |
🌐 Cookie
- 打开浏览器(可选无痕模式启动),访问
https://www.xiaohongshu.com/explore
- 按下
F12
打开开发人员工具
- 选择
网络
选项卡
- 勾选
保留日志
- 在
过滤
输入框输入cookie-name:web_session
- 选择
Fetch/XHR
筛选器
- 点击小红书页面任意作品
- 在
网络
选项卡选择任意数据包(如果无数据包,重复步骤7)
- 全选复制 Cookie 写入程序或配置文件
![notion image](https://github.com/JoeanAmier/XHS-Downloader/raw/master/static/screenshot/%E8%8E%B7%E5%8F%96Cookie%E7%A4%BA%E6%84%8F%E5%9B%BE.png?t=7990e5b2-6cfd-4e1f-95ab-6f0bb3686e0f)
🗳 下载记录
XHS-Downloader 会将下载过的作品 ID 储存至数据库,当重复下载相同的作品时,XHS-Downloader 会自动跳过该作品的文件下载(即使作品文件不存在),如果想要重新下载作品文件,请先删除数据库中对应的作品 ID,再使用 XHS-Downloader 下载作品文件!
♥️ 支持项目
如果 XHS-Downloader 对您有帮助,请考虑为它点个 星标 ⭐,感谢您的支持!
如果您愿意,可以考虑提供资助为 XHS-Downloader 提供额外的支持!
✉️ 联系作者
- 微信(其他事务): Downloader_Tools
- 微信公众号(问题解答): Downloader Tools
- QQ 群聊(使用交流): 扫码加入群聊
说明:QQ 群聊仅限于讨论项目使用问题,严禁发布任何广告,严禁讨论任何账号交易、账号流量、流量变现、灰色产业等相关的内容!
✨ 作者的其他开源项目:
- TikTokDownloader(抖音 / TikTok):https://github.com/JoeanAmier/TikTokDownloader
- KS-Downloader(快手):https://github.com/JoeanAmier/KS-Downloader
⚠️ 免责声明
- 使用者对本项目的使用由使用者自行决定,并自行承担风险。作者对使用者使用本项目所产生的任何损失、责任、或风险概不负责。
- 本项目的作者提供的代码和功能是基于现有知识和技术的开发成果。作者尽力确保代码的正确性和安全性,但不保证代码完全没有错误或缺陷。
- 使用者在使用本项目时必须严格遵守 GNU General Public License v3.0 的要求,并在适当的地方注明使用了 GNU General Public License v3.0 的代码。
- 使用者在任何情况下均不得将本项目的作者、贡献者或其他相关方与使用者的使用行为联系起来,或要求其对使用者使用本项目所产生的任何损失或损害负责。
- 使用者在使用本项目的代码和功能时,必须自行研究相关法律法规,并确保其使用行为合法合规。任何因违反法律法规而导致的法律责任和风险,均由使用者自行承担。
- 本项目的作者不会提供 XHS-Downloader 项目的付费版本,也不会提供与 XHS-Downloader 项目相关的任何商业服务。
- 基于本项目进行的任何二次开发、修改或编译的程序与原创作者无关,原创作者不承担与二次开发行为或其结果相关的任何责任,使用者应自行对因二次开发可能带来的各种情况负全部责任。
在使用本项目的代码和功能之前,请您认真考虑并接受以上免责声明。如果您对上述声明有任何疑问或不同意,请不要使用本项目的代码和功能。如果您使用了本项目的代码和功能,则视为您已完全理解并接受上述免责声明,并自愿承担使用本项目的一切风险和后果。
💡 代码参考
QA问答对
- Q: XHS-Downloader 是用来做什么的? A: XHS-Downloader 是一个用于提取和下载小红书平台上作品的工具,它可以帮助用户采集作品信息、提取下载链接,并下载无水印的作品文件。
- Q: XHS-Downloader 支持哪些功能? A: XHS-Downloader 支持多种功能,包括采集作品信息、提取作品下载地址、下载无水印作品文件、自动跳过已下载作品、作品文件完整性处理、自定义下载格式、持久化存储作品信息至文件等。
- Q: 如何使用 XHS-Downloader 程序运行?
A: 用户可以前往 GitHub 的 Releases 页面下载程序压缩包或安装包,解压后运行
main.exe
即可使用。默认下载路径为.\\_internal\\Download
,配置文件路径为.\\_internal\\settings.json
。
- Q: XHS-Downloader 支持命令行模式吗? A: 是的,XHS-Downloader 支持命令行模式,用户可以通过命令行传入参数来执行下载任务,或者从浏览器读取 Cookie 并写入配置文件。
- Q: XHS-Downloader 需要安装 Python 吗?
A: 如果用户选择源码运行方式,需要安装 Python,并运行
pip install -r requirements.txt
来安装所需的模块。
- Q: 如何获取小红书的 Cookie 并用于 XHS-Downloader? A: 用户需要打开浏览器,访问小红书的某个页面,通过开发者工具获取 Cookie,并复制粘贴到 XHS-Downloader 的配置文件或命令行参数中。
- Q: XHS-Downloader 支持二次开发吗?
A: 是的,XHS-Downloader 允许用户根据
main.py
的注释提示进行代码调用或修改,以满足特定的需求。
- Q: XHS-Downloader 是否有用户脚本版本? A: 是的,如果用户的浏览器安装了 Tampermonkey 扩展,可以直接添加 XHS-Downloader 用户脚本来使用其功能,无需下载安装程序。
- Q: XHS-Downloader 的配置文件
settings.json
包含哪些参数? A: 配置文件包含参数如作品数据/文件保存根路径、作品文件储存文件夹名称、请求头 User-Agent、小红书网页版 Cookie、网络代理设置、请求数据超时限制等。
- Q: XHS-Downloader 的免责声明有哪些内容? A: 免责声明中提到使用者需自行承担使用风险,作者不对任何损失或责任负责。使用者必须遵守法律法规,并确保使用行为合法合规。作者不提供商业服务,且与任何基于本项目的二次开发行为或结果无关。
- 作者:Doiiars
- 链接:https://notion.doiiars.com/article/xhs-downloader
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章