python3 使用aria2下载的一个脚本

import requests
import time
ariaurl="http://localhost:6800/jsonrpc"
dlurl="http://xxx.xxx.xxx/xxx.xxx"  #需下载文件的真实
fn="XXX.XXX"   #落地的文件名,
dn="XXX/XXXX/xxxx"      #本地目录
maxdowns=3    #最大并发数
#jsondata  rpc调用的数据头(固定部分)
jsondata={
    "jsonrpc":"2.0",
    "id":"QXJpYU5nXzE1NDgzODg5MzhfMC4xMTYyODI2OTExMzMxMzczOA==",
    }

def  ariadown(url,fname,fdir):          #url  是下载文件的链接,fanme和fdir分别为本地文件名和目录
    reqdata=jsondata
    reqdata["method"] = "aria2.tellActive"             #aria  取当前并发数的的方法
    ret = requests.post(ariaurl, json=reqdata)
    #print(ret.json())
    curdowns=len(ret.json()["result"])
    while curdowns >= maxdowns:
        print("Waitting for links...")
        time.sleep('2')                  #等不到就睡一觉
        ret = requests.post(ariaurl, json=reqdata)
        curdowns=len(ret.json()["result"])
    reqdata["method"] = "aria2.addUri"            #aria  增加下载的方法
    reqdata['params'] = [[],{}]
    reqdata['params'][0] = [url]
    reqdata['params'][1] = {"out" : fname,"dir" : fdir}
    ret = requests.post(ariaurl, json=reqdata)
    return(ret.status_code)
ret = ariadown(dlurl,fn,dn)                      #下载的调用
print(ret)                       #是不是200?

 

posted @ 2019-10-11 20:27  银杏叶的学习笔记  阅读(2321)  评论(0编辑  收藏  举报