操作系统种类繁多,各自的操作方法和技巧各异。虽然XHS-Downloader项目能提供多样化的功能,但在使用和搭建过程中,仍有许多细节需要留意。下面,我将为你逐一详述。
程序下载与启动
Mac OS及Windows 10及以上系统的用户,请访问“Releases”页面下载程序压缩包。下载完毕后,请解压文件,进入程序文件夹,双击“main”即可启动。需要注意的是,Mac OS系统中的“main”可执行文件可能需要通过终端命令行来运行。
手动构建可执行文件
本项目中包含了手动制作可执行文件的GitHub操作步骤。用户可以随时使用这些步骤将最新的源代码转换成可执行文件。在Fork后的仓库里,点击顶部的“Actions”标签页,找到“手动构建可执行文件”的工作流,然后点击右侧的“运行工作流”按钮即可启动构建过程。
文件默认下载路径
若以特定方法运用程序,文件会自动保存在_internal\Download目录下。记得这个位置,便于日后寻找下载的资料,同时也能减少因资料找不到而带来的麻烦。
Docker 运行项目
def api_demo():
server = "http://127.0.0.1:8000/xhs/"
data = {
"url": "https://www.xiaohongshu.com/explore/123456789",
"download": True,
"index": [
3,
6,
9,
],
}
response = requests.post(server, json=data)
print(response.json())
使用Docker执行项目时,无法通过命令行进行操作,剪贴板的读取与监听功能将不可用,不过粘贴功能依然可以正常执行。若遇到其他功能出现异常,请及时告知,以便开发者进行相应的调整和改进。
Python 环境与模块安装
请确保安装了3.12版本的Python解释器,然后将最新源码或Releases发布的源码下载到本地。在终端中切换到项目根目录,执行pip install -i -r requirements.txt命令安装所需模块。安装完成后,运行main.py文件即可。
功能特性及使用建议
async def example():
"""通过代码设置参数,适合二次开发"""
# 示例链接
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
name_format = "作品标题 作品描述"
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,
name_format=name_format,
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, index=[1, 2]))
# 支持传入多个作品链接
print(await xhs.extract(multiple_links, download, ))
项目支持通过命令行操作,若需下载图文作品中的某些图片,可以通过此模式指定图片的序号进行下载。此外,利用XHS-Downloader用户脚本可以批量获取作品链接,并配合程序进行无水印文件的批量下载。项目启动时,会自动创建settings.json文件,允许用户自定义一些运行参数。此外,XHS-Downloader会将已下载作品的ID存储在数据库中,若重复下载同一作品,系统会自动跳过。若需重新下载,需先从数据库中移除相应的作品ID。
大家在使用XHS-Downloader时,有没有遇到过一些比较麻烦的问题?欢迎在评论区说出来,别忘了点赞和转发这篇文章。






