因为这个学期各种各样的原因,公众号很久都没有更新了,实在是对不起各位,做这个公众号的最初目的就是想给身边的朋友们分享点干货,帮助大家解决实际问题,做了一年多了,虽然关注量还不到两百,但我还是挺知足的

我们在搜索资料的时候,百(防和谐)度文库是一个值得参考的选择,该文库只能说是鱼龙混杂吧,有很多垃圾资料,当然也有一些非常不错的东西。

坠痛苦的呢,就是发现自己好不容易找到的的资料,竟然要下载券。

点开看看,发现下载券这玩意儿自己并没有。

于是出现了下面几种做法(特指百度文库需要下载券的资料):

合理合法的方式是前两个,但如果真的遇到一些紧急情况,又不想因为一两次下载充那么多钱,就可以采取一些骚操作。

(社会社会~)

先说一个方法,就是有一些网站提供这种下载功能,具体操作是复制网页链接,直接点击下载。它们的优点就是可以直接下载到原格式,然而因为这些网站看起来不是特别正规,而且不知道什么时候忽然就会挂,因此有一定的风险。

目前根据我所知道的情报,下面几个网站是可行的:

另一个方法是是我每次下载文库所用到的方法,比较推荐,主角就是冰点下载器(idocdown)这款软件。

(软件界面)

使用教程

具体使用方法很简单,只需要复制一下所需资料所在的网址,再打开idocdown,把网址复制进去,点击“下载”即可,下载转码完毕后在“已下载”里面可以找到资料的pdf文件

软件特点

1、针对百(防和谐)度文库的需要下载券的资料(其实其他的很多文库也资瓷哦),有明码标价必须要付钱的资料无法下载

2、下载后的形式为pdf格式,要想获得word或者ppt文档,则另需转换,推荐使用Adobe Acrobat进行pdf转换(应该都有这个软件吧?很多人没有的话下次写一篇这个?)

软件获取

公众号后台回复“0710”,即可获得下载链接,当然也可以去网上找,但是因为中间有个更新,旧版的下载器已经无法使用了,怕大家浪费时间下错软件,这里提供的是新版的

软件原理

既然都走到这一步了,当然还想顺便了解一下原理,冰点下载我推测是利用截屏原理来获取文档每一页的图片信息并下载,再将图片转码成pdf。

当然除了这个软件,还有其他方法把网页中看到的文库内容提取出来(这里只简要说一下提取成txt格式的简单化实现过程)

检查这个网站时,发现文字信息就在审查元素中,说明理论上可以让爬虫去抓取文字信息。

在github搜寻之后找到了一个利用python爬虫实现的百度文库txt信息抓取代码,稍作了一下调整,简化后的代码如下:

# -*- coding = 'utf-8' -*-   import requestsimport reimport jsondef get_text(url):   doc_id = re.findall('view/(.*).html', url)[0]  #获取文档id   html = requests.get(url)   html.encoding = html.apparent_encoding #防止中文乱码   doc_name = re.findall('<title>(.*?)</title>', html.text)[0]   url_2 ="&doc_id="+doc_id   html_2 = requests.get(url_2).text   md5 = re.findall('"md5sum":"(.*?)"',html_2)[0]   pn = re.findall('"totalPageNum":"(.*?)"',html_2)[0]   rsign = re.findall('"rsign":"(.*?)"',html_2)[0]   NewUrl = 'https://wkretype.bdimg.com/retype/text/'+doc_id+'?rn='+pn+'&type=txt'+md5+'&rsign='+rsign   txt = requests.get(NewUrl).text   jsons = json.loads(txt)  #把Unicode编码解析为汉字   texts=re.findall("'c': '(.*?)',",str(jsons))   #print(texts)   with open(doc_name,'a',encoding='utf-8') as ff:  #存储txt文件       for i in range(0,len(texts)):           texts[i] = texts[i].replace('\\r','\r')           texts[i] = texts[i].replace('\\n','\n')           ff.write(texts[i])   print("文档保存在" + doc_name)   if __name__ == '__main__':  #主程序入口   url = input("请输入网址:")   get_text(url)

运行这几行代码之后,粘贴网址进去就可以在你的电脑里自动生成一个以该文档标题命名的txt文档了(虽然txt文档基本没什么用就是了),不过这个过程还是挺有趣的o( ̄▽ ̄)o

(怕你们没看到再重复一遍:公众号后台回复“0710”,即可获得idocdown的下载链接~)

·  欢    迎    关    注  ·