mirror of
https://github.com/JoeanAmier/XHS-Downloader.git
synced 2026-03-22 06:57:16 +08:00
docs(example.py): 更新二次开发示例代码
This commit is contained in:
45
README.md
45
README.md
@@ -207,14 +207,12 @@ def api_demo():
|
||||
</ul>
|
||||
<p><strong>自动滚动页面功能代码已重构,该功能默认关闭!启用该功能可能会被小红书检测为自动化操作,从而导致账号受到风控或封禁风险!</strong></p>
|
||||
<h1>💻 二次开发</h1>
|
||||
<p>如果有其他需求,可以根据 <code>main.py</code> 的注释提示进行代码调用或修改!</p>
|
||||
<p>如果有其他需求,可以根据 <code>example.py</code> 的注释提示进行代码调用或修改!</p>
|
||||
<pre>
|
||||
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}"
|
||||
demo_link = "https://www.xiaohongshu.com/explore/XXX?xsec_token=XXX"
|
||||
# 实例对象
|
||||
work_path = "D:\\" # 作品数据/文件保存根路径,默认值:项目根路径
|
||||
folder_name = "Download" # 作品文件储存文件夹名称(自动创建),默认值:Download
|
||||
@@ -228,29 +226,38 @@ async def example():
|
||||
record_data = False # 是否保存作品数据至文件
|
||||
image_format = "WEBP" # 图文作品文件下载格式,支持:PNG、WEBP
|
||||
folder_mode = False # 是否将每个作品的文件储存至单独的文件夹
|
||||
image_download = True # 图文作品文件下载开关
|
||||
video_download = True # 视频作品文件下载开关
|
||||
live_download = False # 图文动图文件下载开关
|
||||
download_record = True # 是否记录下载成功的作品 ID
|
||||
language = "zh_CN" # 设置程序提示语言
|
||||
read_cookie = None # 读取浏览器 Cookie,支持设置浏览器名称(字符串)或者浏览器序号(整数),设置为 None 代表不读取
|
||||
# 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,
|
||||
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,
|
||||
image_download=image_download,
|
||||
video_download=video_download,
|
||||
live_download=live_download,
|
||||
download_record=download_record,
|
||||
language=language,
|
||||
read_cookie=read_cookie,
|
||||
) 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, ))
|
||||
</pre>
|
||||
<h1>📋 读取剪贴板</h1>
|
||||
<p>项目使用 <code>pyperclip</code> 实现读取剪贴板功能,该模块在不同的系统上会有差异。</p>
|
||||
|
||||
45
README_EN.md
45
README_EN.md
@@ -211,14 +211,12 @@ def api_demo():
|
||||
</ul>
|
||||
<p><strong>The automatic page scroll feature has been refactored and is turned off by default! Enabling this feature may be detected as automated behavior by Xiaohongshu, potentially resulting in account risk control or banning.</strong></p>
|
||||
<h1>💻 Secondary Development</h1>
|
||||
<p>If you have other needs, you can perform code calls or modifications based on the comments in <code>main.py</code>!</p>
|
||||
<p>If you have other needs, you can perform code calls or modifications based on the comments in <code>example.py</code>!</p>
|
||||
<pre>
|
||||
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}"
|
||||
demo_link = "https://www.xiaohongshu.com/explore/XXX?xsec_token=XXX"
|
||||
# 实例对象
|
||||
work_path = "D:\\" # 作品数据/文件保存根路径,默认值:项目根路径
|
||||
folder_name = "Download" # 作品文件储存文件夹名称(自动创建),默认值:Download
|
||||
@@ -232,29 +230,38 @@ async def example():
|
||||
record_data = False # 是否保存作品数据至文件
|
||||
image_format = "WEBP" # 图文作品文件下载格式,支持:PNG、WEBP
|
||||
folder_mode = False # 是否将每个作品的文件储存至单独的文件夹
|
||||
image_download = True # 图文作品文件下载开关
|
||||
video_download = True # 视频作品文件下载开关
|
||||
live_download = False # 图文动图文件下载开关
|
||||
download_record = True # 是否记录下载成功的作品 ID
|
||||
language = "zh_CN" # 设置程序提示语言
|
||||
read_cookie = None # 读取浏览器 Cookie,支持设置浏览器名称(字符串)或者浏览器序号(整数),设置为 None 代表不读取
|
||||
# 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,
|
||||
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,
|
||||
image_download=image_download,
|
||||
video_download=video_download,
|
||||
live_download=live_download,
|
||||
download_record=download_record,
|
||||
language=language,
|
||||
read_cookie=read_cookie,
|
||||
) 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, ))
|
||||
</pre>
|
||||
<h1>📋 Read Clipboard</h1>
|
||||
<p>The project uses <code>pyperclip</code> to implement clipboard reading functionality, which varies across different systems.</p>
|
||||
|
||||
68
example.py
Normal file
68
example.py
Normal file
@@ -0,0 +1,68 @@
|
||||
from asyncio import run
|
||||
|
||||
from source import XHS
|
||||
|
||||
|
||||
async def example():
|
||||
"""通过代码设置参数,适合二次开发"""
|
||||
# 示例链接
|
||||
demo_link = "https://www.xiaohongshu.com/explore/XXX?xsec_token=XXX"
|
||||
|
||||
# 实例对象
|
||||
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 # 是否将每个作品的文件储存至单独的文件夹
|
||||
image_download = True # 图文作品文件下载开关
|
||||
video_download = True # 视频作品文件下载开关
|
||||
live_download = False # 图文动图文件下载开关
|
||||
download_record = True # 是否记录下载成功的作品 ID
|
||||
language = "zh_CN" # 设置程序提示语言
|
||||
read_cookie = None # 读取浏览器 Cookie,支持设置浏览器名称(字符串)或者浏览器序号(整数),设置为 None 代表不读取
|
||||
|
||||
# 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,
|
||||
image_download=image_download,
|
||||
video_download=video_download,
|
||||
live_download=live_download,
|
||||
download_record=download_record,
|
||||
language=language,
|
||||
read_cookie=read_cookie,
|
||||
) as xhs: # 使用自定义参数
|
||||
download = True # 是否下载作品文件,默认值:False
|
||||
# 返回作品详细信息,包括下载地址
|
||||
# 获取数据失败时返回空字典
|
||||
print(await xhs.extract(demo_link, download, index=[1, 2]))
|
||||
|
||||
|
||||
async def test():
|
||||
url = ""
|
||||
async with XHS() as xhs:
|
||||
print(await xhs.extract(url))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# run(example())
|
||||
run(test())
|
||||
44
main.py
44
main.py
@@ -9,50 +9,6 @@ from source import XHSDownloader
|
||||
from source import cli
|
||||
|
||||
|
||||
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, ))
|
||||
|
||||
|
||||
async def app():
|
||||
async with XHSDownloader() as xhs:
|
||||
await xhs.run_async()
|
||||
|
||||
@@ -81,7 +81,7 @@ class XHS:
|
||||
folder_name="Download",
|
||||
name_format="发布时间 作者昵称 作品标题",
|
||||
user_agent: str = None,
|
||||
cookie: str = None,
|
||||
cookie: str = "",
|
||||
proxy: str | dict = None,
|
||||
timeout=10,
|
||||
chunk=1024 * 1024,
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
from pathlib import Path
|
||||
|
||||
VERSION_MAJOR = 2
|
||||
VERSION_MINOR = 4
|
||||
VERSION_BETA = False
|
||||
VERSION_MINOR = 5
|
||||
VERSION_BETA = True
|
||||
ROOT = Path(__file__).resolve().parent.parent.parent
|
||||
PROJECT = f"XHS-Downloader V{VERSION_MAJOR}.{
|
||||
VERSION_MINOR}{" Beta" if VERSION_BETA else ""}"
|
||||
VERSION_MINOR} {"Beta" if VERSION_BETA else "Stable"}"
|
||||
|
||||
REPOSITORY = "https://github.com/JoeanAmier/XHS-Downloader"
|
||||
LICENCE = "GNU General Public License v3.0"
|
||||
|
||||
Reference in New Issue
Block a user