谢谢几位坛朋的帮忙,不过还是不行。
只能弄个间接的,
把代码里的downloadPic(pageCurrent)删除,手动点可以下载一页,一直点可以顺序下载,到时再配合个自动化脚本。
有空再研究了。
有大佬的话,帮忙再研究研究。
下面代码下载太快了,过一会就会下载失败,想添加个延时,非码农,不懂js,网上找了半天弄不好,麻烦大佬指教下。
if(document.location.pathname.indexOf("onlinebook")>0){
document.body.oncontextmenu = ""
var pageTotal = 0;
var picUrl = ""
//从0开始,为实际页码减一
var pageCurrent = 0;
//下载指定页面图片
function downloadPic(page) {
picUrl = path + "&pageNo=" + page ;
fetch(picUrl).then(res => res.blob().then(blob => {
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob);
var filename = page + '.jpg';
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
if(pageCurrent<pageTotal){
pageCurrent++;
downloadPic(pageCurrent);
}
}))
}
//批量下载
function batchDownload() {
pageTotal = document.getElementById("sumNumb").innerText - 1;
downloadPic(pageCurrent)
}
//创建下载按钮
var downloadBtn = document.createElement("a");
downloadBtn.innerText = "批量下载全书";
downloadBtn.onclick = function () { batchDownload() };
document.querySelector("body > div.divcenter > div.bq > div.bqmiddle > div.ml").appendChild(downloadBtn);
}
热议
推荐楼 HOH 昨天21:21
不管啥语言,最烦的就是匿名方法
2楼 peng123 昨天21:06
不懂
3楼 VPSMarket 昨天21:08
settimeout 的回调里面再执行下载
4楼 qingseyouran 昨天21:08
不懂
略懂c和python,不懂js,看不懂执行逻辑
5楼 qingseyouran 昨天21:10
settimeout 的回调里面再执行下载
settimeout弄了好久,不知道加哪里才可以
加最后面那一段里?
8楼 靓坤 昨天21:24
用settimeout把fetch那里包住即可
9楼 qingseyouran 昨天21:32
kapai 发表于 2022-3-6 21:20
不行,只能下载第一页
10楼 qingseyouran 昨天21:33
用settimeout把fetch那里包住即可
好的。我试下,这个fetch套得太多
12楼 qingseyouran 昨天21:42
用settimeout把fetch那里包住即可
setTimeout(fetch(picUrl).then(res => res.blob().then(blob => {
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob);
var filename = page + '.jpg';
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
if(pageCurrent<pageTotal){
pageCurrent++;
downloadPic(pageCurrent);
}
})), 9000)
不行,还是下得飞起
13楼 qingseyouran 昨天21:44
替换fetch(picUrl).then(res => res.blob().then(blob => { 里的试下,能不能用我也不知道,因为我也是菜 ...
好,马上试下
14楼 qingseyouran 昨天21:55
替换fetch(picUrl).then(res => res.blob().then(blob => { 里的试下,能不能用我也不知道,因为我也是菜 ...
fetch(picUrl).then(res => res.blob().then(blob => {
new Promise((resolve, reject) => {
setTimeout(() => {
var a = document.createElement('a');
var url = window.URL.createObjectURL(blob);
var filename = page + '.jpg';
a.href = url;
a.download = filename;
a.click();
resolve()
}, 1000);
}).then(_ => {
window.URL.revokeObjectURL(url);
if(pageCurrent<pageTotal){
pageCurrent++;
downloadPic(pageCurrent);
}
})
}))
}
也只能下第一页
15楼 qingseyouran 昨天21:56
替换fetch(picUrl).then(res => res.blob().then(blob => { 里的试下,能不能用我也不知道,因为我也是菜 ...
这个嵌套回调,完全看不懂
16楼 qingseyouran 昨天22:00
kapai 发表于 2022-3-6 21:20
console提示
Uncaught ReferenceError: downloadPic is not defined
at <anonymous>:1:1
17楼 qingseyouran 昨天22:17
把代码里的downloadPic(pageCurrent)删除,手动点可以下载一页,一直点可以顺序下载,到时再配合个自动化脚本。
有空再研究了。
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。
谷姐靓号网



评论前必须登录!
立即登录 注册