JS大佬看看这个控制台相关的问题
本帖最后由 zoenbo 于 2020-12-13 20:32 编辑我想在网页端看那种图片阅读的网站,页面是滚动向下继续阅读,有没有办法在控制台输入代码把这些加载了的图片打包下载?目前有一段姑狗图书上可以用的代码,可不可以把这个改成咨询图书联盟可用的呢?
http://book.ucdrs.superlib.net/search?Field=1&channel=search&sw=%D2%F4%C0%D6
下边的代码放到控制台后,滚动阅读后到最后一张,输入finish()就可以把图片都打包成book.zip
var zipJSUTL='https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.5/jszip.js';
var fileSaverURL='https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js';
function loadLibraries(srcURL) {
var script = document.createElement("script"); // Make a script DOM node
script.src = srcURL // Set it's src to the provided URL
document.head.appendChild(script); // Add it to the end of the head section of the page (could change 'head' to 'body' to add it to the end of the body section instead)
}
function addBlob(source,ind){
var xhr = new XMLHttpRequest();
xhr.open("GET", source);
xhr.responseType = "blob";//force the HTTP response, response-type header to be blob
xhr.onload = function()
{
if(blobs==undefined)
blobs = xhr.response;//xhr.response is now a blob object
}
xhr.send();
}
var res=[];
var blobs=[]
scrollBar=document.querySelector('.overflow-scrolling');
scrollBar.addEventListener('scroll', scrollFnc);
function scrollFnc(){
imges=document.querySelectorAll('img')
for(var i=1;i<imges.length;i++){
//console.log(imges.width)
if(imges.width >500){
// console.log(imges.src);
res.push(imges)
var regex = new RegExp(/pg=\w\w\d+/i);
str=imges.src;
x=str.match(regex)
if(x==null){
console.log('!!!!!!!!!'+str);
continue;
}
x=x;
pageNo= x.substring(5)/1;
console.log(pageNo);
addBlob(str,pageNo);
}
}
}
loadLibraries(zipJSUTL);
loadLibraries(fileSaverURL);
function finish(){
var zip= new JSZip();
for(var i=0; i<blobs.length;i++){
if(blobs==undefined)
continue;
zip.file('images/'+i+'.png', blobs, {base64: true});
}
zip.generateAsync({type:"blob"})
.then(function(content) {
// see FileSaver.js
saveAs(content, "book.zip");
});
} 不能正常访问 本帖最后由 zoenbo 于 2020-12-13 20:14 编辑
SailZhao520 发表于 2020-12-13 19:35
不能正常访问
大佬,是图书联盟的访问不了吗?可以在图书咨询联盟里随便找一本试读的就行
http://book.ucdrs.superlib.net/search?Field=1&channel=search&sw=%D2%F4%C0%D6 不是可以直接PDF下载吗
hebeijianke 发表于 2020-12-13 21:06
不是可以直接PDF下载吗
可以,我想用这个控制台的方法,要的是图片,浏览器插件的方法也会,就是想用控制台实现一下。如果没有直接PDF下载的网站,控制台就有用了。 jszip在这个图书联盟里面加载不进去。
图片地址的list已经拿到了。JSZip is not defined。。。。
尴尬 本帖最后由 zoenbo 于 2020-12-13 22:22 编辑
or6522 发表于 2020-12-13 22:13
jszip在这个图书联盟里面加载不进去。
图片地址的list已经拿到了。JSZip is not defined。。。。
尴尬
这个JSZIP可能得扶梯子 https://github.com/Stuk/jszip
https://wws.lanzouj.com/iA2Hijc87hi
大佬,我把那两个JS打包了 zoenbo 发表于 2020-12-13 22:17
这个JSZIP可能得扶梯子
感觉文档详情页面禁止js文件写入了。我在文档列表页面用都好着呢。 or6522 发表于 2020-12-13 22:19
感觉文档详情页面禁止js文件写入了。我在文档列表页面用都好着呢。
那如果用到其他同类网站好使不呢? zoenbo 发表于 2020-12-13 22:23
那如果用到其他同类网站好使不呢?
那铁定是不好使的。
第二十三行。是获取滚动区域。每个网站滚动区域的class不一样,这里就得改。
26行,一般的都是img标签来显示图片,但是这个图书联盟就是用的<input type="image">这里获取方法也要改。
31到41是获取src之后拿到具体的图片地址。图书联盟就是省略了host的相对地址。拼上host直接就是真实地址
56行是正式开始下载,jszip没法加载,我就没具体看。但是看样子第一个参数是真实地址的样子。
页:
[1]
2