0%

教你如何下载各种文库的收费文档

前提该要

  • 前几天,一朋友过来问我,能否帮忙下载某某文库的收费文档,可不可以做到。这肯定可以啊,满口就答应下来了。像小编这种爱偷懒的人,肯定首先打开的是百度,找各种可以破解收费下载的软件的了,然后各种尝试都不行,以前用的冰点也不行。这可怎么行,看来只能自己手动操作了,没法偷懒了。

用到的工具

  • PyCharm
  • IDEA
  • Google
  • 以上编译器以及浏览器可用其他工具替代,看你自己喜欢

分析下载

  • 注意:这种方法适用百度文库,360文库,道客巴巴文库收费文档的下载,包含Word、PPT、PDF,下面将以道客巴巴为例子进行讲解。
  • 打开自己想要的下载的文档页面,按F12进入开发者,按照截图选中,可以看到,该文档的第一页内容其实就是一个图片,很明显有一个图片地址。这里是关键,我们下载文档全靠这地址了。
    01
  • 竟然找到了图片的链接,那么我们是不是只要获取到这个要下载的文档的所有图片链接,然后把图片下载下来就可以了,是的,没错,就是这么简单,这么容易。
  • 那么我们只要考虑如何通过HTML的代码解析出所有的图片链接了,然后对应图片下载下来就可以了不是 ,再把图片转成自己想要的Word、PPT、PDF,不就很完美了。
  • 开始干活,提取HTML文件,这里有个坑,就是多页的文档,会有个继续阅读全文的按钮,要把那个按钮点了,把整个文档加载出来才行,记住,一定要加载完全,不然会有缺漏页。
    02
  • 等待加载完全就把对应的HTML代码如图右键截取(copy => copy element)出来放到自己命名的txt记事本上面,我这里取名字为3.txt
    03
    04
  • 在PyCharm执行对应的py代码,解析图片地址,把解析出来的图片地址在控制台复制出来,放到新的txt文件中,这里取名4.txt
    07
    05
  • 在IDEA执行对应的Java代码,下载图片到对应的桌面文件夹中,这里在桌面新建个名为2的文件夹。
    06
    08
  • 这里我要下载的是132页的PDF文档,不出意外下载下来也是132页的图片。
    09
  • 至此,图片下载完了,那么转成什么格式的文档我就不用多说了吧,这就很简单了,大功告成,欢喜,奶茶祝贺!

后语

  • 其他没有例子的文库文档都大同小异,基本上可以靠这个方法解决下载问题。
  • 至于为什么不直接搞个成品出来,咳咳…主要还是有点懒,哈哈,有兴趣的可以弄弄。以后会不会搞一个出来,也说不定,毕竟我也没这个需求经常来下载文档,要不是朋友要,我也不会弄这个。
  • 我这里用到了两个语言,其实一开始就有问题,入坑了,搞错了,实际全用py就可以了,这里就不换了,有兴趣的也可以研究一下。
  • 就这样,这里主要就是提供一下破解下载的思路。

相关代码

1
2
3
4
5
6
7
8
9
10
import re

def Find(string):
url = re.findall('src="(.*?)"',string)
return url

with open('C:\\Users\\Lings\\Desktop\\3.txt','r',encoding='utf-8') as f:
content = f.read()
for i in Find(content):
print(i)
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
46
47
48
49
50
51
52
53
54
55
56
57
58
package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

import javax.imageio.ImageIO;

public class downImage {

public static void main(String[] args) throws IOException {
File file = new File("C:\\Users\\Lings\\Desktop\\4.txt");
FileInputStream is = new FileInputStream(file);
// 设置 读取文件的编码类型。。。
InputStreamReader isr = new InputStreamReader(is,"UTF-8");
BufferedReader br = new BufferedReader(isr);
int readerLine = 0;
while (br.ready()) {
readerLine ++; //设置 从那一行开始 取数据
String name = br.readLine();
System.out.println(readerLine +" " + name);
File localFile = new File("C:\\Users\\Lings\\Desktop\\2\\"+(readerLine)+".png");
downloadImage(name,"png", localFile);
if (readerLine != 1) {
//从第二行 读取数据
}
}
System.out.println("下载完成!!");
br.close();
isr.close();
}

/**
* 网络图片下载
* @param url 图片url
* @param formatName 文件格式名称
* @param localFile 下载到本地文件
* @return 下载是否成功
*/
public static boolean downloadImage(String imageUrl, String formatName, File localFile) {
boolean isSuccess = false;
URL url = null;
try {
url = new URL(imageUrl);
isSuccess = ImageIO.write(ImageIO.read(url), formatName, localFile);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return isSuccess;
}

}
-------------本文结束 感谢您的阅读-------------
只想买包辣条、喝杯奶茶加珍珠