zoukankan      html  css  js  c++  java
  • 文库下载实现自动化

    文库下载

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

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

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

    下载文档要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这个软件,这个比较好用,还可以去水印之类的。在我之前去水印的文章里,有提到过

  • 相关阅读:
    php学习记录 易混淆
    自己学习smarty的一些代码 和记录
    Java 死锁
    Java多线程下单例
    Java 线程安全问题
    Java 线程状态
    Java 创建线程
    Java clone() 浅拷贝 深拷贝
    Java 多线程
    Java throw try catch
  • 原文地址:https://www.cnblogs.com/meethigher/p/12757629.html
Copyright © 2011-2022 走看看