吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4011|回复: 1
收起左侧

[会员申请] 申请会员ID:Froster

[复制链接]
吾爱游客  发表于 2020-2-3 15:35
1、申请ID:Froster
2、个人邮箱:815559068@qq.com
3、原创技术文章:


使用 python 调用 Aria2

前言

感觉大家应该都知道这款下载软件了。。。我就不再赘述了。

下面主要说下如何用 xmlrpc 调用这玩意开始下载。

关于官方文档里提到的诸如查看下载状态一类的先不在这里说了,因为以我的经验来看管理下载还是AriaNg好用,如何装这个也不说了...

(在往下读之前请确保你的 Aria2 能被 AriaNg 或类似的工具正常使用。

python 的话看官方文档里用 xmlrpc 好点,先贴下官方示例:

# aria2.addUri([secret, ]uris[, options[, position]])

import xmlrpclib
s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
s.aria2.addUri(['http://example.org/file'])

用pip装完xmlrpclib以后抄下来前两行就行,如果之前改了 rpc 端口别忘了抄的时候改一下。重点是这个addUri方法。它负责调用aria2开始下载。

忽略掉secretpositionaddUri的第一个参数是带着一堆下载地址的数组,第二个可选参数是传给 Aria2 的参数列表。

参数列表是一个 dict,主要有用的大概是:

  • max-connection-per-server,也就是-x,设置分段下载功能。
  • split,设置 n 个线程。
  • header,这个不解释了。
  • dir,设置目录。如果不设置会下载到默认目录。注意如果使用相对目录,基准是aria2c.exe所在目录
  • out,文件名。当然前面带一段目录也是可以的。(我没试过在第一个参数中包含多个链接的时候指定文件名。)
  • referer,也不解释了。其实在 header 里面指定 referer 也是可以的。

举个例子:

#下载b站视频
import xmlrpclib
rpc = xmlrpclib.ServerProxy('http://localhost:6800/rpc')

#mid, title, aid = getinf()
options = {
    "max-connection-per-server": 5,
    "split": 5,
    "out": "/" + str(mid) + "/" + title + ".flv",
    #"dir": 
    "referer": referer = "https://www.bilibili.com/video/av" + str(aid),
    #"header": ["User-Agent:xxx","Referer:xxx"]
    #注意header是array不是dict
    #错误示例:{"User-Agent": "xxx"}
}
rpc.aria2.addUri([url], options)

addUri的返回值是gid,可以用在其他的一些诸如查看下载状态、控制暂停继续的函数里。如果添加不成功会直接报错。

完整的函数介绍请看https://aria2.github.io/manual/en/html/aria2c.html#rpc-interface

完整的参数在https://aria2.github.io/manual/en/html/aria2c.html#options

参数列表带两个-的就是option字典的键,比如-d, --dir=<DIR>等效为{"dir": \<DIR\>}。

先写这么多吧...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2020-2-3 16:53
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 08:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表