long blogs

进一步有进一步惊喜


  • Home
  • Archive
  • Tags
  •  

© 2026 long

Theme Typography by Makito

Proudly published with Hexo

book118预览文档下载

Posted at 2019-10-10 爬虫 javascript 

获得预览文档的图片的全部url

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
* 以下代码在
* https://max.book118.com
* 控制台中执行,复制到控制台就可以了
* !!!!需要注意的是每张图片都渲染到页面中(预览全部)了再运行,否则会出现部分的图片路径获取不了
* 从控制台中复制路径字符串
*/
function getAllImageURL(){
var allImageDivs = document.getElementsByClassName("webpreview-item");
var urls = [];
for(let i=0;i<allImageDivs.length;i++){
var url = allImageDivs[i].children[0].src;
// 打印每张图片的url
console.log(i+":"+url);
urls.push(url);
}
localStorage.setItem("urls",urls);
}
(function(){
getAllImageURL();
console.log("==以下内容是图片的路径字符串===");
console.log(localStorage.getItem("urls"));
console.log("=============================");
})();
//===================================================================

运行的结果:

右键复制的得到的字符串,后面要用

根据url字符串下载图片

由于跨域问题,下载图片需要在图片所在的域名下下载。。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/**
* 以下代码在
* https://view-cache.book118.com/
* 的控制台中执行。
* !!!! 执行前需要将获得的url字符串粘贴到list中
*/
window.downloadImage = function (url,filename) {
// 请求延迟,最好设置大一点 64000ms
var timeout = Math.random() * 64000;
this.setTimeout(function () {
var xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob";
xhr.onload = function () {
if (this.status == 200) {
var blob = this.response;
var downloadElement = document.createElement('a');
var href = window.URL.createObjectURL(blob); //创建下载的链接
downloadElement.href = href;
downloadElement.download = filename; //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
}
}
xhr.send()
}, timeout);
}
function getAllImage(){
// 将路径url字符串粘贴到list中
var list = "这里要将上一步的url字符串放在这里";
var urls = list.split(",");
for(let i=0;i<urls.length;i++){
// 图片后缀
var suffix = urls[i].split(".")[urls[i].split(".").length-1];
// 图片序列名
var filename = i+"."+suffix;
downloadImage(urls[i],filename);
}
}
(function(){
getAllImage();
})();
// =======================================

请求结果:

需要开启chorme的连续下载
下载结果

Share 

 Previous post: longSys相关文档 Next post: m3u8解码和合并工具 

© 2026 long

Theme Typography by Makito

Proudly published with Hexo