操作系统种类繁多,各自的操作方法和技巧各异。虽然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时,有没有遇到过一些比较麻烦的问题?欢迎在评论区说出来,别忘了点赞和转发这篇文章。