Aria2@RPC下载@Alist批量下载
文章目录
- abstract
- Aria2 RPC 概述
- RPC 的主要功能
- 在线文档
- aria2的配置文件与启动选项
- 使用配置文件设置aria2 rpc功能
- Aria2关于rpc的离线文档
- Aria2 RPC 重要和常用选项
- 1. `enable-rpc`
- 2. `rpc-listen-port`
- 3. `rpc-secret`
- 4. `rpc-listen-all`
- 5. `rpc-allow-origin-all`
- 6. `rpc-max-request-size`
- 7. `rpc-save-upload-metadata`
- 总结👺
- aria2 rpc 安全性配置选项
- aria2 --rpc-secret选项介绍
- 如何使用--rpc-secret
- 安全性建议
- 启用和配置 Aria2 RPC👺
- 配置文件设置
- 启动 Aria2
- 使用 Aria2 RPC
- aria2 rpc客户端:使用设置了rpc-secret的aria2
- 使用在线web UI👺
- 使用API直接连接
- 使用aria2客户端库
- Alist配置aria2 rpc实现批量下载或文件夹下载
- 命令行客户端(TODO)
- 添加下载任务
- 解释:
- 暂停下载任务
- 查询任务状态
abstract
Aria2 是一款轻量级、多协议、多源的命令行下载工具,其强大的功能使得它在开发者和高级用户中备受推崇。
本文探讨 Aria2 的远程控制功能——RPC(Remote Procedure Call),并演示如何使用它来远程管理下载任务。
Aria2 RPC 概述
RPC 的主要功能
- 添加、暂停、删除下载任务:可以通过 RPC 动态管理任务。
- 获取任务状态:可以实时查询任务的下载进度、速度和状态。
- 修改下载选项:支持在下载过程中修改下载参数,比如最大连接数、速度限制等。
- 事件通知:可以通过 RPC 接口获取下载完成或出错的通知。
在线文档
- Aria2 中文文档 — aria2 1.37.0 documentation
- rpc-interface|aria2c(1) — aria2 1.37.0 documentation
Aria2 提供了一个远程控制接口(RPC),可以通过 JSON-RPC 协议对 Aria2 进行操作。这意味着你可以通过网络,从远程服务器或本地脚本控制 Aria2 的下载任务。
aria2的配置文件与启动选项
-
默认情况下,aria2会检查
$home/.aria2/aria2.conf
文件(aria2的配置文件)-
如果存在该文件,那么启动时会根据该文件内的配置项目启动或者设置相应的功能服务
-
如果找不到该文件,并且没有指定其他位置的存在的配置文件,那么aria2 会认为你只是想要使用最基本下载功能,如果你不提供下载链接(源),那么会提示你
PS> aria2c Specify at least one URL. Usage: aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]... See 'aria2c -h'.
-
你可以使用
--conf-path
选项来临时指定aria2的功能配置文件路径
-
-
--conf-path=<PATH>
¶Change the configuration file path to PATH. Default:
$HOME/.aria2/aria2.conf
if present, otherwise$XDG_CONFIG_HOME/aria2/aria2.conf
使用配置文件设置aria2 rpc功能
- 虽然配置文件不是必须的,但是使用配置文件可以让aria2的服务调用更加优雅和方便
- 例如,我们可以在aria2的配置文件中设置是否启用rpc功能,以及是否使用密钥保护
Aria2关于rpc的离线文档
- 在命令行中执行
aria2c -h#rpc
获取文档
PS C:\Users\cxxu\Desktop> aria2c -h#rpc
Usage: aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]...
Printing options tagged with '#rpc'.
See 'aria2c -h#help' to know all available tags.
Options:--enable-rpc[=true|false] Enable JSON-RPC/XML-RPC server.It is strongly recommended to set secretauthorization token using --rpc-secret option.See also --rpc-listen-port option.Possible Values: true, falseDefault: falseTags: #rpc--rpc-listen-port=PORT Specify a port number for JSON-RPC/XML-RPC serverto listen to.Possible Values: 1024-65535Default: 6800Tags: #rpc--rpc-max-request-size=SIZE Set max size of JSON-RPC/XML-RPC request. If aria2detects the request is more than SIZE bytes, itdrops connection.Possible Values: 0-*Default: 2MTags: #rpc--rpc-listen-all[=true|false] Listen incoming JSON-RPC/XML-RPC requests on allnetwork interfaces. If false is given, listen onlyon local loopback interface.Possible Values: true, falseDefault: falseTags: #rpc...--rpc-secret=TOKEN Set RPC secret authorization token.Tags: #rpc
...Refer to man page for more information.
Aria2 RPC 重要和常用选项
1. enable-rpc
- 作用: 启用或禁用 Aria2 的 RPC 功能。
- 默认值:
false
- 配置:
enable-rpc=true
- 说明: 这是启动 RPC 的关键选项。如果不启用 RPC,所有其他与 RPC 相关的配置都会被忽略。
2. rpc-listen-port
- 作用: 指定 RPC 服务监听的端口号。
- 默认值:
6800
- 配置:
rpc-listen-port=6800
- 说明: 指定 Aria2 的 RPC 服务端口,客户端(如 Web UI、脚本等)通过此端口与 Aria2 进行通信。如果该端口被占用,可以更改为其他端口号。
3. rpc-secret
- 作用: 设置 RPC 连接的授权令牌(token)。
- 默认值: 无(不设置时不需要认证)
- 配置:
rpc-secret=your_secret_token
- 说明: 为了提高安全性,建议设置一个 RPC 授权令牌(用户自行定义,可以设得很简单,但是对于重要资料,建议设得复杂)。客户端在发起 RPC 请求时,需要使用此令牌进行认证。
4. rpc-listen-all
- 作用: 是否允许 RPC 在所有网络接口上监听。
- 默认值:
false
(仅在本地回环地址上监听) - 配置:
rpc-listen-all=true
- 说明: 默认情况下,RPC 只在本地监听(即只能从本机访问)。如果你希望从其他设备访问 Aria2 的 RPC 服务,则需要启用此选项。
5. rpc-allow-origin-all
- 作用: 是否允许所有来源的跨域请求(CORS)。
- 默认值:
false
- 配置:
rpc-allow-origin-all=true
- 说明: 如果需要从不同的域名或 IP 地址访问 Aria2(如从 Web UI 管理界面),可以启用此选项以允许跨域请求。
6. rpc-max-request-size
- 作用: 设置 RPC 请求的最大允许大小(单位:字节)。
- 默认值:
2097152
(2MB) - 配置:
rpc-max-request-size=2097152
- 说明: 此选项用于限制单个 RPC 请求的大小。默认值通常够用,但在处理大数据量或复杂请求时可以适当增加。
7. rpc-save-upload-metadata
- 作用: 控制是否保存上传的种子文件元数据。
- 默认值:
true
- 配置:
rpc-save-upload-metadata=true
- 说明: 当你通过 RPC 上传种子文件时,Aria2 会保存这些元数据。启用此选项可以防止数据丢失,但会占用一些存储空间。
总结👺
Aria2 RPC 是一个非常强大和灵活的工具,通过这些配置选项,你可以定制化 RPC 的行为,以满足各种场景的需求。
- 核心配置:
enable-rpc
、rpc-listen-port
是必不可少的,它们决定了 RPC 是否可用以及如何访问。 - 安全配置:
rpc-secret
提供了简单有效的认证机制,确保只有授权用户可以访问 RPC 服务。 - 访问配置:
rpc-listen-all
和rpc-allow-origin-all
则控制了 RPC 的访问范围和跨域请求的处理,非常适合在多设备环境中使用。 - 性能配置:
rpc-max-request-size
和rpc-save-upload-metadata
则影响 RPC 的性能和数据处理,适合根据具体需求进行调整。
aria2 rpc 安全性配置选项
非常好,我很高兴为您详细解释aria2的--rpc-secret
选项的使用。这个选项对于提高aria2 RPC服务的安全性非常重要。
aria2 --rpc-secret选项介绍
--rpc-secret
选项用于设置RPC服务的密钥,为aria2的RPC接口添加一层安全保护。当设置了这个选项后,客户端在连接到aria2 RPC服务时需要提供正确的密钥才能进行操作。
如何使用–rpc-secret
-
在配置文件中设置
在aria2的配置文件(通常是
aria2.conf
)中添加以下行:rpc-secret=YOUR_SECRET_KEY
将
YOUR_SECRET_KEY
替换为你想使用的密钥。 -
通过命令行参数设置
如果你是通过命令行启动aria2,可以这样设置:
aria2c --enable-rpc --rpc-listen-all --rpc-secret=YOUR_SECRET_KEY
安全性建议
-
选择强密钥:使用长且复杂的密钥,包含大小写字母、数字和特殊字符。
-
定期更换:定期更换你的RPC密钥可以提高安全性。
-
使用HTTPS:如果可能,考虑配置aria2使用HTTPS来加密RPC通信。
-
限制IP:如果可能,限制只有特定IP可以访问RPC服务。
启用和配置 Aria2 RPC👺
在使用 RPC 功能之前,你需要确保 Aria2 的 RPC 已正确配置。
配置文件设置
首先,你需要修改 Aria2 的配置文件(通常是 aria2.conf
),添加以下内容来启用 RPC:
#允许rpc
enable-rpc=true
#允许非外部访问
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=6800
# 设置 RPC 授权令牌(提高安全性)
rpc-secret=1# 允许跨域请求(可选,适用于 Web 前端)
rpc-allow-origin-all=true#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=32
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=16
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数
#split=64
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0#文件保存路径, 默认为当前启动位置
#dir="./"
#使用代理
# all-proxy=localhost:1080
启动 Aria2
配置完成后,可以通过命令行启动 Aria2:
aria2c --conf-path=/path/to/aria2.conf
例如aria2c --conf-path=C:\repos\configs\aria2.conf
这样,Aria2 的 RPC 功能就启用了,监听的端口为 6800。
PS C:\Users\cxxu\Desktop> aria2c --conf-path=C:\repos\configs\aria2.conf08/15 19:51:05 [NOTICE] IPv4 RPC: listening on TCP port 680008/15 19:51:05 [NOTICE] IPv6 RPC: listening on TCP port 680008/15 20:17:06 [NOTICE] Download complete: C:/Users/cxxu/Desktop/Cpp/StarsPrinter.exe08/15 20:17:06 [NOTICE] Download complete: C:/Users/cxxu/Desktop/Cpp/TheOfYear.c08/15 20:17:06 [NOTICE] Download complete: C:/Users/cxxu/Desktop/Cpp/a.exe08/15 20:17:06 [NOTICE] Download complete: C:/Users/cxxu/Desktop/Cpp/anni.cpp
- 上述例子中我利用Alist调用aria2 rpc下载了某个文件夹(通过勾选文件夹,发送到aria2下载)
- 下载的每个文件都被记录和输出在了终端
- 如果需要后台运行,和alist自启脚本一起设置后台启动或开机后台自启
使用 Aria2 RPC
使用 Aria2 RPC 控制 Aria2 需要发送 HTTP POST 请求,其中请求内容为 JSON 格式的数据。你可以使用 curl
或编程语言的 HTTP 客户端来发送请求。
aria2 rpc客户端:使用设置了rpc-secret的aria2
使用在线web UI👺
打开以下网页,填写本地aria2 rpc服务地址和密钥(如果有设置的话),可以通过UI来管理本地aria2下载任务
-
Aria2 WebUI (ziahamza.github.io)
-
AriaNg (mayswind.net)
在RPC设置中,你需要在密钥(Secret)字段填入你设置的密钥。
使用API直接连接
如果你是通过编程方式直接调用aria2的RPC API,你需要在每个JSON-RPC请求中添加token:
前缀和你的密钥。例如:
{"jsonrpc":"2.0","method":"aria2.addUri","id":"qwer","params":["token:YOUR_SECRET_KEY",["http://example.com/file.zip"]]
}
使用aria2客户端库
很多编程语言的aria2客户端库都支持设置RPC密钥。你通常需要在创建客户端时提供这个密钥。
Alist配置aria2 rpc实现批量下载或文件夹下载
-
知道aria2 rpc是怎么回事,我们就可以用它来配置alist的批量下载或文件夹下载
- 假设有两台设备S,C(分别是服务器server以及客户端Client)
- 试验之前,确保你的客户端上下载器aria2 rpc服务启动成功并处于运行状态(假设aria2 rpc地址
http://localhost:6800/jsonrpc
,这是默认地址);密钥如果你设置了,就需要填写,如果没有设置,那么不需要填写 - 在设备C上打开了S的Alist链接,想要下载上面的某些个文件夹
- 这时候可以先在网页前端填写上述rpc地址(如果有密钥需要一并填写),填写位置可以找找右下角的齿轮,展开它,点击到设置填写
- 选择启用复选框,这样方便选取需要下载的文件后文件夹
- 然后选择好下载对象后,网页下方中间位置有下载按钮,点击其中的发送到Aria2选项,顺利的话会提示你发送成功,可以查看下载日志,或者你配置在aria2 配置文件中指定的保存目录(没有指定的话,则默认下载到启动aria2 rpc的工作目录下)
-
相关文档
-
alist网页中的功能布局和按钮:侧边栏|设置 | AList文档 (nn.ci)
-
离线下载|其他设置 | AList文档 (nn.ci)
-
Alist中的Aria2的应用|为什么 | AList文档 (nn.ci)
-
-
虽然批量下载的问题解决了,但是这要求客户端上安装了aria2(或者将来其他支持的软件),并且启动了aria2 rpc服务,便捷性还是有所欠缺(不如挂webdav来的直接)
命令行客户端(TODO)
添加下载任务
下面的示例展示了如何通过 RPC 添加一个下载任务:
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","method": "aria2.addUri","id": "qwer","params": ["token:your_secret_token",["http://example.com/file.zip"]]
}' http://localhost:6800/jsonrpc
解释:
- method:
aria2.addUri
表示添加下载任务的操作。 - params:第一个参数为
token:your_secret_token
(RPC 授权令牌),第二个参数是下载链接的数组。 - id:可选,用于标识请求,可以是任意字符串。
暂停下载任务
要暂停一个正在下载的任务,可以使用以下 RPC 请求:
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","method": "aria2.pause","id": "qwer","params": ["token:your_secret_token","task_gid"]
}' http://localhost:6800/jsonrpc
其中 task_gid
是任务的全局唯一标识符,可以从添加任务的返回结果或任务查询中获取。
查询任务状态
你可以通过以下请求查询当前正在进行的所有任务:
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","method": "aria2.tellActive","id": "qwer","params": ["token:your_secret_token"]
}' http://localhost:6800/jsonrpc
返回结果将包含所有活跃任务的详细信息,包括下载速度、已下载大小、剩余时间等。
相关文章:
Aria2@RPC下载@Alist批量下载
文章目录 abstractAria2 RPC 概述RPC 的主要功能在线文档aria2的配置文件与启动选项使用配置文件设置aria2 rpc功能Aria2关于rpc的离线文档 Aria2 RPC 重要和常用选项1. enable-rpc2. rpc-listen-port3. rpc-secret4. rpc-listen-all5. rpc-allow-origin-all6. rpc-max-request…...

神经串联式语音转换:对基于串联的单次语音转换方法的再思考 论文笔记
NEURAL CONCATENATIVE SINGING VOICE CONVERSION: RETHINKING CONCATENATION-BASED APPROACH FOR ONE-SHOT SINGING VOICE CONVERSION 笔记 发现问题: 在any-to-any的转换中,由于内容和说话人音色的解耦不足,导致源说话人的音色部分仍保留在转换后的音频中&#x…...

机器学习(1)--数据可视化
文章目录 数据可视化作用可视化方法实现可视化 总结 数据可视化 数据可视化是将数据以图形、图像、动画等视觉形式表示出来,以便人们能够更直观地理解、分析和交流数据中的信息。 作用 一个整理的好好的数据,我们为什么要将其可视化呢?将它…...

docker部署Prometheus、Grafana
docker部署Prometheus 1、 拉取prometheus镜像 docler pull prom/prometheus 遇到问题:注意下科学上网。 2、将prometheus配置文件放在外面管理 prometheus.yml global:scrape_interval: 15sevaluation_interval: 15salerting:alertmanagers:- static_configs:-…...

5.mysql多表查询
MYSQL多表查询 MYSQL多表查询1.多表关系笛卡尔积 2. 多表查询概述2.1 内连接2.2 外连接2.3自连接联合查询union ,union all 2.4子查询2.4.1标量子查询2.4.2列子查询2.4.3行子查询2.4.4表子查询 MYSQL多表查询 create table student(id int auto_increment primary …...

【前端面试】挖掘做过的nextJS项目(上)
为什么使用nextJS 需求: 快速搭建宣传官网 1.适应pc、移动端 2.基本的路由跳转 3.页面渲染优化 4.宣传的图片、视频资源的加载优化 5.seo优化 全栈react web应用、 tailwind css原子工具的支持,方便书写响应式ui app router(React 服务器组件)支持服务器渲…...
【Unity-UGUI】UGUI知识汇总
目录 前言1 UGUI系统原理2 事件系统2.1 EventSystem2.2 InputModules2.3 Raycasters2.4 协作 3 UGUI系统的组件3.1 Image和RawImage3.2 Mask和RectMask2D 扩展UI穿透问题 前言 记录一些最近学到的有关UGUI的知识。 参考 知乎:6千字带你入门UGUI源码 书籍ÿ…...
JavaScript性能测试:策略、工具与实践
在Web开发中,性能测试是确保应用程序达到预期响应速度和处理能力的关键步骤。JavaScript作为构建交互式Web应用的核心语言,其性能直接影响用户体验。本文将详细介绍如何使用JavaScript进行性能测试,包括性能测试的基本概念、测试类型、工具、…...

嵌入式软件开发学习一:软件安装(保姆级教程)
资源下载: 江协科技提供: 资料下载 一、安装Keil5 MDK 1、双击.EXE文件,开始安装 2、 3、 4、此处尽量不要安装在C盘,安装路径选择纯英文,防止后续开发报错 5、 6、 7、弹出来的窗口全部关闭,进入下一步&a…...
SpringMVC学习中遇到的不懂注解记录
文章目录 Autowrite 和 ResourceQualifier 和 PrimaryPathVariableController、Service、Repository 和 Component Autowrite 和 Resource 我们先讲讲 Autowrite 注解 吧。 public class StudentService3 implements IStudentService {//Autowiredprivate IStudentDao studentD…...
Java面试题--分布式锁
分布式锁 你说一下什么是分布式锁 分布式锁是在分布式/集群环境中解决多线程并发造成的一系列数据安全问题.所用到的锁就是分布式锁,这种锁需要被多个应用共享才可以,通常使用Redis和zookeeper来实现。 分布式锁有哪些解决方案 常用的三种方案 基于…...

一文讲清数据平台与数据中台的关系与区别
前言 如果您是IT领域或者数据领域的从业者,一定对IT行业“创造”概念的能力深有体会,也一定经常被看起来名称相似,但又不同的各种概念绕的云里雾里,摸不着头脑。今天我们要讨论的是数据平台和数据中台两个概念,您是不…...
Android的Service和Thread的区别
Service 是一种可在后台执行长时间运行操作而不提供界面的应用组件。 Android Service是组件,既不能说它是单独的进程也不能说它是单独的线程。 如果非要从通俗的语言层面来理解的话,姑且将其理解为对象。这个Service对象本身作为应用程序的一部分与它的…...

经纬恒润亮相第四届焉知汽车年会,功能安全赋能域控
8月初,第四届焉知汽车年会在上海举行。此次年会围绕当下智能电动汽车的热点和焦点,聚焦于智能汽车场景应用、车载通信、激光雷达、智能座舱、功能安全、电驱动系统等多个领域,汇聚了来自OEM、科技公司、零部件供应商、测试认证机构、政府院校…...
掌握JavaScript单元测试:最佳实践与技术指南
单元测试是软件开发过程中的关键环节,它帮助开发者确保代码的每个独立部分按预期工作。在JavaScript开发中,进行单元测试不仅可以提高代码质量,还可以加快开发速度,因为它们为代码更改提供了安全网。本文将详细介绍如何使用JavaSc…...

spring boot 古茶树管理系统---附源码19810
目 录 摘要 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3论文结构与章节安排 2古茶树管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2经济可行性分析 2.1.3操作可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 …...
00067期 matlab中的asv文件
今天在编写代码的过程中,发现自动生成.m文件的同名文件.asv,特此发出疑问?下面是解答: 有时在存放m文件的文件夹中会出现*.asv asv 就是auto save的意思,*.asv文件的内容和相应的*.m文件内容一样,用记…...

JMeter高效管理测试数据-参数化
文章目录 1.什么是参数化2.定义变量3.CSV数据文件设置 1.什么是参数化 在JMeter中,参数化是一种常用的技术,用于使测试场景更加灵活和动态。通过参数化,你可以让JMeter在每次请求中使用不同的值,这在模拟真实用户行为或测试不同输…...
python学习之writelines
在Python中,writelines() 是一个方法,它属于文件对象,用于将字符串列表写入到文件中。这个方法接受一个序列(如列表或元组)作为参数,序列中的每个元素都是要写入的一行文本。 ### 函数定义: p…...

STM32学习笔记13-FLASH闪存
FLASH简介 STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)可以对程序存储器和选项字节进行擦除和编程读写FLASH的用途: 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 通过在…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...