book118预览文档下载
Posted at 2019-10-10 爬虫 javascript
12345678910111213141516171819202122232425
/** * 以下代码在 * 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("=============================");})();//===================================================================
运行的结果:
右键复制的得到的字符串,后面要用
由于跨域问题,下载图片需要在图片所在的域名下下载。。。
123456789101112131415161718192021222324252627282930313233343536373839404142434445
/** * 以下代码在 * 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的连续下载下载结果
Previous post: longSys相关文档 Next post: m3u8解码和合并工具