免费;轻量;开源,基于 AIOHTTP 模块实现的小红书图文/视频作品采集工具
功能清单
- ✅ 采集小红书图文/视频作品信息
- ✅ 提取小红书图文/视频作品下载地址
- ✅ 下载小红书无水印图文/视频作品文件
- ✅ 自动跳过已下载的作品文件
- ✅ 作品文件完整性处理机制
- ✅ 持久化储存作品信息至文件
- ☑️ 后台监听剪贴板下载作品
- ☑️ 支持 API 调用功能
📸 程序截图
支持链接
https://www.xiaohongshu.com/explore/作品ID
https://www.xiaohongshu.com/discovery/item/作品ID
https://xhslink.com/分享码
支持单次输入多个作品链接,链接之间使用空格分隔。
🪟 关于终端
⭐ 推荐使用 Windows 终端 (Windows 11 自带默认终端)运行程序以便获得最佳显示效果!
🥣 使用方法
如果仅需下载作品文件,选择 直接运行 或者 源码运行 均可,如果需要获取作品信息,则需要进行二次开发进行调用。
🖱 直接运行
前往 Releases 下载程序压缩包,解压后打开程序文件夹,双击运行 main.exe
即可使用。
⌨️ 源码运行
- 安装版本号不低于
3.12
的 Python 解释器 - 运行
pip install -r requirements.txt
命令安装程序所需模块 - 下载本项目最新的源码或 Releases 发布的源码至本地
- 运行
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 = "" # 网络代理 timeout = 5 # 网络请求超时限制,单位:秒,默认值:10 chunk = 1024 * 1024 # 下载文件时,每次从服务器获取的数据块大小,单位:字节 max_retry = 2 # 请求数据失败时,重试的最大次数,单位:秒,默认值:5 # 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, ) 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
文件,首次运行自动生成,可以自定义部分运行参数。
参数 | 类型 | 含义 | 默认值 |
---|---|---|---|
path | str | 作品数据 / 文件保存根路径 | 项目根路径 |
folder_name | str | 作品文件储存文件夹名称 | Download |
user_agent | str | 请求头 User-Agent | 默认 UA |
cookie | str | 小红书网页版 Cookie,无需登录 | 默认 Cookie |
proxy | str | 设置代理 | 无 |
timeout | int | 请求数据超时限制,单位:秒 | 10 |
chunk | int | 下载文件时,每次从服务器获取的数据块大小,单位:字节 | 1048576(1 MB) |
max_retry | int | 请求数据失败时,重试的最大次数,单位:秒 | 5 |
record_data | bool | 是否记录作品数据至文件 | false |
image_format | str | 图文作品文件名称后缀,例如:jpg 、png |
webp |
发表 :1年前