Skip to content

JoeanAmier/XHS-Downloader

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
December 23, 2023 10:57
December 23, 2023 10:57
August 16, 2023 19:23
December 23, 2023 10:57
December 23, 2023 10:57
December 9, 2023 22:17

XHS-Downloader

GitHub GitHub forks GitHub Repo stars GitHub all releases GitHub release (with filter)

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

📑 功能清单

  • ✅ 采集小红书图文 / 视频作品信息
  • ✅ 提取小红书图文 / 视频作品下载地址
  • ✅ 下载小红书无水印图文 / 视频作品文件
  • ✅ 自动跳过已下载的作品文件
  • ✅ 作品文件完整性处理机制
  • ✅ 持久化储存作品信息至文件
  • ✅ 作品文件储存至单独文件夹
  • ☑️ 后台监听剪贴板下载作品
  • ☑️ 支持 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 即可使用

💻 二次开发

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

# 测试链接
error_demo = "https://github.com/JoeanAmier/XHS_Downloader"
image_demo = "https://www.xiaohongshu.com/explore/63b275a30000000019020185"
video_demo = "https://www.xiaohongshu.com/explore/64edb460000000001f03cadc"
multiple_demo = f"{image_demo} {video_demo}"
# 实例对象
path = ""  # 作品数据/文件保存根路径,默认值:项目根路径
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 = "jpg"  # 图文作品文件名称后缀
folder_mode = False  # 是否将每个作品的文件储存至单独的文件夹
async with XHS() as xhs:
    pass  # 使用默认参数
async with XHS(path=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_demo, download))  # 获取数据失败时返回空字典
    print(await xhs.extract(image_demo, download))
    print(await xhs.extract(video_demo, download))
    print(await xhs.extract(multiple_demo, download))  # 支持传入多个作品链接

⚙️ 配置文件

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

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

参数 类型 含义 默认值
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 图文作品文件名称后缀,不影响实际文件格式 webp
video_format str 视频作品文件名称后缀,不影响实际文件格式 mp4
folder_mode bool 是否将每个作品的文件储存至单独的文件夹;文件夹名称与文件名称保持一致 false

🌐 Cookie

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

♥️ 支持项目

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

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

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

✉️ 联系作者

XHS-Downloader 是我个人独立维护的一个开源项目,鉴于个人精力有限,请理解项目进展可能较为缓慢,我会尽力保持更新和维护,以确保项目的稳定性和功能的不断改进。

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

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

⚠️ 免责声明

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