文库下载实现自动化

文库下载

超简单!学生如何免费下载文档,一看就会

原文链接腾讯课堂以及文库下载实现自动化

刚才在做英语练习题的时候,做完了,想对一下答案,就百度了搜了一下,进去一个文库。

下载文档要12块钱,我就看了一下,上面预览的都是图片,所以就想着,js批量把图片下载下来,然后合成pdf,就正常看了,关键是没花钱啊,要不用浪费多长时间。

具体的使用我放到youtube的文库免费下载小技巧,本来想往b站传的,但是被驳回锁定了。下面放上代码吧。

{% asset_img 3.png 只不过是程序代替了手动 %}

1 示例淘豆网

淘豆网就是直接把图片放出来了,咱们直接下手就行。

function download(url, fileName) {
    let xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);//true表示异步
    xhr.responseType = 'blob';
    xhr.onload = () => {
        if (xhr.status === 200) {
           downloadByA(xhr.response,fileName);
        }
    };
    xhr.send();
}
function downloadByA(data,fileName){
	let urlObject = window.URL || window.webkitURL || window;
	let export_blob=new Blob([data]);
	let a=document.createElement("a");
	a.href=urlObject.createObjectURL(export_blob);
	a.download=fileName;
	a.click();
}
//下面这块代码需要按自己需求,进行稍微地修改,上面两块代码可以不用动
document.querySelectorAll(".pageBox img").forEach(function(ele, i) {
    download(ele.src,i+".jpg");
});

然后将下载出的图片合成pdf,就ok了

点击进入淘豆网示例网址

2 示例道客巴巴

道客巴巴就有点小心眼了,他把所有的预览图片,都转成了canvas形式的,那也没事,咱们同样用代码给他转回来。

function download(url, fileName) {
    let xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);//true表示异步
    xhr.responseType = 'blob';
    xhr.onload = () => {
        if (xhr.status === 200) {
           downloadByA(xhr.response,fileName);
        }
    };
    xhr.send();
}
function downloadByA(data,fileName){
	let urlObject = window.URL || window.webkitURL || window;
	let export_blob=new Blob([data]);
	let a=document.createElement("a");
	a.href=urlObject.createObjectURL(export_blob);
	a.download=fileName;
	a.click();
}
//下面这块代码需要按自己需求,进行稍微地修改,上面两块代码可以不用动
document.querySelectorAll(".outer_page .inner_page").forEach(function(ele, i) {
    download(ele.toDataURL("image/jpeg"),i+".jpg");
});

点击进入道客巴巴示例网址

3 示例百度文库

百度文库有文字显示的,也有图片显示的,这里主要针对图片显示的,文字的我也看了太麻烦了。

但是在处理图片的过程中也出了问题,涉及到跨域的问题

{% asset_img 2.png 百度文库 %}

document.querySelectorAll(".mod.reader-page.complex.hidden-doc-banner .inner .bd .reader-pic-item").forEach(function(ele, i) {
    download(ele.style.backgroundImage.match(/[^url("].*[^")]/)[0],i+".jpg");
});

点击进入百度文库示例网址,网址放到这里,留着以后有时间再研究。准备上数学课了。

4 关于合成pdf

现在工具很多,有免费在线版,也有免费的客户端,给大家推荐两款吧。

  1. 免费在线转pdf
  2. adobe acrobat

我是用的acrobat这个软件,这个比较好用,还可以去水印之类的。在我之前去水印的文章里,有提到过

posted @ 2020-04-22 23:07  言成言成啊  阅读(616)  评论(0编辑  收藏  举报