/XHS-Downloader

免费;轻量;开源,基于 AIOHTTP 模块实现的小红书图文 / 视频作品采集工具

Primary LanguagePythonGNU General Public License v3.0GPL-3.0


XHS-Downloader

简体中文 | English

GitHub GitHub forks GitHub Repo stars Static Badge
GitHub code size in bytes GitHub release (with filter) GitHub all releases

🔥 小红书作品采集工具:采集小红书作品信息;提取小红书作品下载地址;下载小红书无水印作品文件!

❤️ 作者仅在 GitHub 发布 XHS-Downloader,未与任何个人或网站合作,且没有任何收费计划!

📑 项目功能

  • ✅ 采集小红书图文 / 视频作品信息
  • ✅ 提取小红书图文 / 视频作品下载地址
  • ✅ 下载小红书无水印图文 / 视频作品文件
  • ✅ 支持 Tampermonkey 用户脚本
  • ✅ 批量下载账号作品(搭配用户脚本)
  • ✅ 自动跳过已下载的作品文件
  • ✅ 作品文件完整性处理机制
  • ✅ 自定义图文作品文件下载格式
  • ✅ 持久化储存作品信息至文件
  • ✅ 作品文件储存至单独文件夹
  • ☑️ 后台监听剪贴板下载作品
  • ☑️ 支持 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

⌨️ 源码运行

  1. 安装版本号不低于 3.12 的 Python 解释器
  2. 运行 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 命令安装程序所需模块
  3. 下载本项目最新的源码或 Releases 发布的源码至本地
  4. 运行 main.py 即可使用

🕹 用户脚本

如果您的浏览器安装了 Tampermonkey 浏览器扩展程序,可以添加 用户脚本,无需下载安装即可体验项目功能!

提示:可以使用 XHS-Downloader 用户脚本批量提取网页上的作品链接,搭配 XHS-Downloader 程序即可实现批量下载无水印作品文件!

脚本功能

  • 下载小红书无水印作品文件
  • 提取发现页面作品链接
  • 提取账号发布作品链接
  • 提取账号收藏作品链接
  • 提取账号点赞作品链接

脚本截图

💻 二次开发

如果有其他需求,可以根据 main.py 的注释提示进行代码调用或修改!

# 示例链接
error_link = "https://github.com/JoeanAmier/XHS_Downloader"
demo_link = "https://www.xiaohongshu.com/explore/xxxxxxxxxx"
multiple_links = f"{demo_link} {demo_link} {demo_link}"
# 实例对象
work_path = "D:\\"  # 作品数据/文件保存根路径,默认值:项目根路径
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 = "WEBP"  # 图文作品文件下载格式,支持:PNG、WEBP
folder_mode = False  # 是否将每个作品的文件储存至单独的文件夹
async with XHS() as xhs:
    pass  # 使用默认参数
async with XHS(work_path=work_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_link, download))  # 获取数据失败时返回空字典
    print(await xhs.extract(demo_link, download))
    print(await xhs.extract(multiple_links, download))  # 支持传入多个作品链接

⚙️ 配置文件

项目根目录下的 settings.json 文件,首次运行自动生成,可以自定义部分运行参数。

如果您的计算机没有合适的程序编辑 JSON 文件,建议使用 JSON 在线工具 编辑配置文件内容

参数 类型 含义 默认值
work_path str 作品数据 / 文件保存根路径 项目根路径
folder_name str 作品文件储存文件夹名称 Download
user_agent str 请求头 User-Agent 默认 UA
cookie str 小红书网页版 Cookie,无需登录 默认 Cookie
proxy str 设置程序代理 null
timeout int 请求数据超时限制,单位:秒 10
chunk int 下载文件时,每次从服务器获取的数据块大小,单位:字节 1048576(1 MB)
max_retry int 请求数据失败时,重试的最大次数,单位:秒 5
record_data bool 是否记录作品数据至 TXT 文件 false
image_format str 图文作品文件下载格式,支持:PNGWEBP PNG
folder_mode bool 是否将每个作品的文件储存至单独的文件夹;文件夹名称与文件名称保持一致 false
language str 设置程序语言,目前支持:zh-CN zh-CN

🌐 Cookie

  1. 打开浏览器(可选无痕模式启动),访问小红书任意网页
  2. F12 打开开发人员工具
  3. 选择 控制台 选项卡
  4. 输入 document.cookie 后回车确认
  5. 输出内容即为所需 Cookie

♥️ 支持项目

如果 XHS-Downloader 对您有帮助,请考虑为它点个 Star ⭐,感谢您的支持!

微信(WeChat) 支付宝(Alipay)
微信赞助二维码 支付宝赞助二维码

如果您愿意,可以考虑提供资助为 XHS-Downloader 提供额外的支持!

✉️ 联系作者

如果您通过 Email 联系我,我可能无法及时查看并回复信息,我会尽力在七天内回复您的邮件;如果有紧急事项或需要更快的回复,请通过其他方式与我联系,谢谢理解!

如果您对抖音 / TikTok 感兴趣,可以了解一下我的另一个开源项目 TikTokDownloader

⚠️ 免责声明

  • 使用者对本项目的使用由使用者自行决定,并自行承担风险。作者对使用者使用本项目所产生的任何损失、责任、或风险概不负责。
  • 本项目的作者提供的代码和功能是基于现有知识和技术的开发成果。作者尽力确保代码的正确性和安全性,但不保证代码完全没有错误或缺陷。
  • 使用者在使用本项目时必须严格遵守 GNU General Public License v3.0 的要求,并在适当的地方注明使用了 GNU General Public License v3.0 的代码。
  • 使用者在任何情况下均不得将本项目的作者、贡献者或其他相关方与使用者的使用行为联系起来,或要求其对使用者使用本项目所产生的任何损失或损害负责。
  • 使用者在使用本项目的代码和功能时,必须自行研究相关法律法规,并确保其使用行为合法合规。任何因违反法律法规而导致的法律责任和风险,均由使用者自行承担。
  • 本项目的作者不会提供 XHS-Downloader 项目的付费版本,也不会提供与 XHS-Downloader 项目相关的任何商业服务。
  • 基于本项目进行的任何二次开发、修改或编译的程序与原创作者无关,原创作者不承担与二次开发行为或其结果相关的任何责任,使用者应自行对因二次开发可能带来的各种情况负全部责任。
在使用本项目的代码和功能之前,请您认真考虑并接受以上免责声明。如果您对上述声明有任何疑问或不同意,请不要使用本项目的代码和功能。如果您使用了本项目的代码和功能,则视为您已完全理解并接受上述免责声明,并自愿承担使用本项目的一切风险和后果。