犀牛脚本:仿迅雷的增强批量下载

2023-12-25 10:20

本文主要是介绍犀牛脚本:仿迅雷的增强批量下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

迅雷的批量下载满好用。但是有两点我不太中意。在这个脚本里会有所增强

1、不能设置保存的文件名。
2、不能单独设置这批下载的线程限制。

使用方法

// 下载从编号001到编号020的图片,保存名为猫咪写真*.jpg 使用6个线程 
jdlp http:
//bizhi.zhuoku.com/bizhi/200804/0422/cat/cat{*}.jpg d:\草原上的可爱猫咪\ 猫咪写真{*}.jpg 20 1 3 6


脚本备份

ContractedBlock.gif ExpandedBlockStart.gif View Code
var rslt = [];
var urlPattern
= arguments[0].replaceAll("(http|https)://", "");
var targetDir
= arguments[1] || "d:\\";
var filenamePattern
= arguments[2] || "图片";
var endIndx
= arguments[3];
var startIndx
= arguments[4];
var numlen
= arguments[5];
var threadnum
= arguments[6];
var service
= java.util.concurrent.Executors.newFixedThreadPool(threadnum);
mkdir(targetDir);

function downloadTask
(indx) {
var url
= "http://" + urlPattern.replace("{*}", indx.toString());
var file
= targetDir + filenamePattern.replace("{*}", indx.toString());
return function() {
// 生成一个url 生成目标文件
try {
println
("downloading : " + url);
cp
(url, file);
println
("downloaded : " + url);
} catch
(e) {
println
("download error : " + url);
println
("reasion :" + e);
}
}
}

function fillStr
(str, c) {
var sb
= new java.lang.StringBuilder(str.toString());
var len
= sb.length();
if (len > numlen) {
return sb.toString().substring(0, len);
}
else {

for (var cnt = 1; cnt <= (numlen - len); cnt++)
sb
.insert(0, c);
return sb.toString();
}
}

function checkAllDone
() {
for each(var futur in rslt) {
if (future.isDone() == false) return false;
}
return true;
}

for (var i = startIndx; i <= endIndx; i++) {
var indx
= fillStr(i, '0');
var future
= service.submit(new java.lang.Thread(downloadTask(indx)));
rslt
.push(future);
}
service
.shutdown();

// 等待结束
while
(checkAllDone() == false) {
java
.lang.Thread.sleep(1000);
}

println
("~~~~over~~~");

转载于:https://www.cnblogs.com/mattmonkey/archive/2011/08/13/2301557.html

这篇关于犀牛脚本:仿迅雷的增强批量下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/535165

相关文章

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

使用Python实现批量分割PDF文件

《使用Python实现批量分割PDF文件》这篇文章主要为大家详细介绍了如何使用Python进行批量分割PDF文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、架构设计二、代码实现三、批量分割PDF文件四、总结本文将介绍如何使用python进js行批量分割PDF文件的方法

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

Python实现文件下载、Cookie以及重定向的方法代码

《Python实现文件下载、Cookie以及重定向的方法代码》本文主要介绍了如何使用Python的requests模块进行网络请求操作,涵盖了从文件下载、Cookie处理到重定向与历史请求等多个方面,... 目录前言一、下载网络文件(一)基本步骤(二)分段下载大文件(三)常见问题二、requests模块处理

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.