【JS脚本】批量下载QQ邮箱附件
本帖最后由 nctot 于 2024-3-7 09:13 编辑----------------------------------2024.3.7 修改--------------------------------------------------------------
增加备注
s=0.1;//每个附件下载的时间间隔,可以自行修改,单位:秒
-------------------------------------------------------------------------------------------------步骤1.设置【下载内容保存位置】
步骤2.取消勾选【下载前询问每个文件的保存位置】
步骤3.打开【QQ邮箱>附件收藏>全部附件】
步骤4.按【F12】
步骤5.切换到【控制台 或CONSOLE】
步骤6.粘贴脚本并执行
PS:脚本会下载到最后一页,中途不想下载只能刷新结束.【本来想写成可以指定页数的,后续再看看吧】
第一次执行会 找不到附件,按下面方法操作【请大佬赐教】
1.按下 Ctrl+Shift+C
2.鼠标挪到第一个附件 上方的 【文件名】,然后点一下
3.重新执行下代码
down();
function down(){
s_down=5;
url="https://lib.sinaapp.com/js/jquery/1.12.4/jquery-1.12.4.min.js";
var script = document.createElement('script');
script.src = url;
document.getElementsByTagName('head').appendChild(script);
console.log("QQ邮箱半自动批量下载");
console.log(s_down+"秒后开始下载...");
setTimeout(function(){
if($(".ico_attach.ico_ndownload").length==0){
console.log("没有找到附件,按下面方法操作");
console.log("1.按下 Ctrl+Shift+C");
console.log("2.鼠标挪到第一个附件 上方的 【文件名】,然后点一下");
console.log("3.重新执行下代码");
}else{
console.log("本页有"+$(".ico_attach.ico_ndownload").length+"个附件");
arrFileUrl=[];
//$(".ico_attach.ico_ndownload").click();
$(".filecolumn.ft_l_listItem").each(function(){
li=$(this);
url=li.attr("downurl");
name=li.attr("filename");
var j={"url":url,"name":name};
arrFileUrl.push(j);
});
$("#div_jindu").remove();
flag=0;
s=0.1;//每个附件下载的时间间隔,可以自行修改,单位:秒
$("body").before("<div id='div_jindu' style='background:white;position: fixed;z-index: 99999999;top: 21px;left: 234px;'></div>");
span="";
count=arrFileUrl.length;
line_count=10;
for(var i=0;i<count;i++){
if(i%line_count==0&&i!=0){
span+="<br>";
}
span+="<button style='height:25px;margin-right:5px;background:lightgrey;' class='file"+(i)+"'></button>";
}
$("#div_jindu").append(span);
fileUrl=arrFileUrl.url;
fileName=arrFileUrl.name;
downloadFile(fileUrl,fileName);
// Fetch the file using the fetch API
function downloadFile(fileUrl,fileName){
fetch(fileUrl)
.then(response => response.blob())
.then(blob => {
$("#div_jindu").find(".file"+flag).css("background","lightgreen");
//console.log(fileName+"下载完成");
var downloadLink = document.createElement('a');
var blobUrl = URL.createObjectURL(blob);
downloadLink.href = blobUrl;
downloadLink.download = fileName;
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
URL.revokeObjectURL(blobUrl);
flag++;
if((flag)<arrFileUrl.length){
setTimeout(function(){
fileUrl=arrFileUrl.url;
fileName=arrFileUrl.name;
downloadFile(fileUrl,fileName);
},s*1000);
}else{
next=$("").length;
if(next>0){
alert("全部下载完毕");
}else{
console.log("第"+$(".button_gray_l.page_count").text().split("/")+"页下载完毕,3秒后继续下一页");
$(".ico_attach.arrow_right").click();
setTimeout(function(){
down();
},3000);
}
}
})
.catch(error => console.error('Error downloading the file:', error+fileName+"下载失败"));
}
}
},s_down*1000);
}
进度
日志提示
文西思密达 发表于 2024-3-7 13:14
大佬有否计划新增一个 批量下载腾讯文档到本地的js
哈哈哈,如果有做,在艾特你. y294945022 发表于 2024-3-7 03:56
是指整个邮箱中的所有邮件的附件吗? 是否可以勾选,或分类、文件夹 下载?
目前是从当前页下载到最后一页
下载前 可以先做下筛选
操作步骤有点多,但胜在解释通俗易通,试试! ghj388486 发表于 2024-3-6 16:21
操作步骤有点多,但胜在解释通俗易通,试试!
:rggrg之前同事问能不能搞, 有刚需,就不麻烦. 挺好,就是说不用一个一个挨个下载了,是挺不错的哈哈哈 超大附件不在这个位置。。所以基本上可以认为每个附件都是小于50MB的。
附件之间等待时间过短,虽然目前腾讯不会出现拦截,但是最好还是让附件新建任务之间的等待时间更长一些。
避免对腾讯负载过大被拦截。以及让老电脑卡死。最好是附件之间也是等待5秒,反正无需操作就是等待。
好东西,谢谢楼主了 是指整个邮箱中的所有邮件的附件吗? 是否可以勾选,或分类、文件夹 下载? goblack 发表于 2024-3-6 20:38
超大附件不在这个位置。。所以基本上可以认为每个附件都是小于50MB的。
附件之间等待时间过短,虽然目前腾 ...
感谢指教!
已添加说明,使用时,可以根据实际情况,修改间隔时间.
页:
[1]
2