最近我妈的文库VIP用完了,但还有很多资源要下载,于是我便在网上找下载工具。

总算找到个完美的!(虽然没界面)

既然没界面,那就自己写一个呗!

原作者

该程序的下载和写入部分由地球守卫者制作

原文链接

下载

GitHub

https://github.com/TotoWang-hhh/du_doc_down.git

上代码

import requests
import json
import re
import docx
import tkinter as tk
import easygui
import webbrowser def web_ui():
webbrowser.open("https://totowang-hhh.github.io") def web_main():
webbrowser.open("https://www.cnblogs.com/huangguifeng/") def start():
get_document(urlEnter.get()) #界面
window=tk.Tk()
window.geometry('800x450')
window.title('Du Doc Down 文库下载器')
window.iconbitmap(".\\icon.ico") webBtn_ui=tk.Button(window,text='界面 By 人工智障',width=25,height=2,font=('仿宋','12'),fg='white',bg='blue',command=web_ui)
webBtn_ui.place(x=10,y=10) webBtn_main=tk.Button(window,text='下载程序 By 地球守卫者',width=25,height=2,font=('仿宋','12'),fg='black',bg='yellow',command=web_main)
webBtn_main.place(x=250,y=10) urlEnterTip=tk.Label(window,text='请将文档链接粘贴到此处')
urlEnterTip.place(x=10,y=105)
urlEnter=tk.Entry(window,bd=2,show=None,width=66)
urlEnter.place(x=10,y=130) downBtn=tk.Button(window,text='下载',font=('等线','15'),fg='white',bg='green',width=43,height=2,command=start)
downBtn.place(x=10,y=160) tipsTitle=tk.Label(window,text='注意',font=('等线','20'))
tipsTitle.place(x=550,y=50)
tipsA=tk.Label(text='·暂时仅支持下载Word文档',font=('等线','13'),anchor='w')
tipsA.place(x=550,y=100)
tipsB=tk.Label(text='·暂不支持下载文字格式与附件',font=('等线','13'),anchor='w')
tipsB.place(x=550,y=120) def get_document(url):
# 文库url
sess = requests.Session()
html = sess.get(url).content.decode("gbk")
# 抓取到文档标题
title = re.search('id="doc-tittle-0">(.*?)</span>', html).group(1)
# 使用正则提取 文档内容的url
res = re.search("WkInfo.htmlUrls = '(.*)'", html).group(1)
# \\x22是linux中的引号,替换成Python中的引号
res = res.replace("\\x22", "\"")
# 转成字典
data = json.loads(res)
# 新建一个文档
document = docx.Document()
string = ""
for i in data["json"]:
url = i["pageLoadUrl"] # 获取到url
url = url.replace("\\", "") # url中有转义符\去掉
# 请求文档内容
data = requests.get(url).content.decode("utf-8")
# 提取文本数据
res = re.search("wenku_\d*\((.*)\)", data, re.S).group(1)
# 将json对象数据转成Python对象
data = json.loads(res)
for i in data['body']:
# 判断数据是什么类型
if i["t"] == "word":
# 获取到文本
string += str(i["c"])
# ps中不为空并且_enter==1的时候是换行也就是一段内容
if i["ps"] and i["ps"].get("_enter") == 1:
document.add_paragraph(string) # 将一段内容写入到word
string = "" # 重新复制 "" 表示新的一段文本
# 保存word
document.save(easygui.filesavebox(title='保存文件',default=title+".docx"))

下载

抱歉,下载链接来晚了,最终没有选择诚通网盘,因为发现存储时间有限。请到我的Github下载,链接
若无法点击超链接,请复制以下网址到浏览器地址栏https://github.com/TotoWang-hhh/du_doc_down.git

百度文库Word下载器的更多相关文章

  1. python+selenium爬取百度文库不能下载的word文档

    有些时候我们需要用到百度文库的某些文章时,却发现需要会员才能下载,很难受,其实我们可以通过爬虫的方式来获取到我们所需要的文本. 工具:python3.7+selenium+任意一款编辑器 前期准备:可 ...

  2. 百度网盘下载器 PanDownload v2.0

    PanDownload是一款坚持以用户体验为中心,畅快淋漓的下载为理念而打造的下载工具. 从2017年2月9日首个版本推出,时至今日已经一年七个月了,首先感谢大家一直以来的支持与建议,促使着我不断地对 ...

  3. 百度网盘下载器:SpeedPan2.3.8

    SpeedPan是款百度网盘资源下载工具,下载速度还行(至少比百度网盘快太多了),支持登录百度账号,也支持免登录下载.官网免费版的取消分享了,我从油管上看到了这个软件,分享给大家. 天翼云:https ...

  4. 冰点文库下载器 v3.2.12(0314) 去广告单文件

    冰点文库,免积分免登陆文档下载神器!付费文档免费下载工具.百度文库免费下载工具.        冰点文库下载器,免费下载文档工具,无需积分也无需登陆就能自由下载百度文库.豆丁网.丁香网.电器网.MBA ...

  5. Qt+Python开发百度图片下载器

    一.资源下载地址 https://www.aliyundrive.com/s/jBU2wBS8poH 本项目路径:项目->收费->百度图片下载器(可试用5分钟) 安装包直接下载地址:htt ...

  6. Aria2+yaaw+Chrome插件BaiduExporter实现百度网盘下载

    Aria2+yaaw+Chrome插件BaiduExporter实现百度网盘下载 这篇博客主要为了解决百度网盘下载限速以及linux等操作系统无百度客户端的问题.主要包括两个方面第一个是aria2的安 ...

  7. 百度文库下载器 V2.3.4.3 支持豆丁百度文库道客巴巴

    支持豆丁百度文库道客巴巴免下载劵财富值导出word 下载地址: http://pan.baidu.com/s/1qYCmQde

  8. Silverlight类百度文库在线文档阅读器

    百度文库阅读器是基于Flash的,用Silverlight其实也可以做. 我实现的在线阅读器可以应用于内网文档发布,在线阅览审批等.没有过多的堆积功能,专注于核心功能.主要有以下特性: 1. 基于XP ...

  9. Silverlight类百度文库在线文档阅读器(转)

    百度文库阅读器是基于Flash的,用Silverlight其实也可以做. 我实现的在线阅读器可以应用于内网文档发布,在线阅览审批等.没有过多的堆积功能,专注于核心功能.主要有以下特性: 1. 基于XP ...

随机推荐

  1. 多年总结IDEA 使用技巧 (建议收藏!)

    很长一段时间没有更新了,前段时间转测试了,浪费了一些时间,终于可以写文章了,今天来写一下之前自己开发的一些习惯,因为自己本身自己是一个极简主义所以 开发喜欢这样:. 全屏显示 我们可以使用[Prese ...

  2. 【收藏】关于元数据(Metadata)和元数据管理,这是我的见过最全的解读!

    本文主要从元数据的定义.作用.元数据管理现状.管理标准和元数据管理功能等方面讲述了我对元数据(Metadata)和元数据管理的认知及理解. 元数据管理 一.元数据的定义 按照传统的定义,元数据(Met ...

  3. NET 5 Cron表达式

    cron表达式通过特定的规则指定时间,用于定时任务 1. 整体结构 cron表达式是一个字符串,分为6或7个域,每两个域之间用空格分隔,其语法格式为: "秒域 分域 时域 日域 月域 周域 ...

  4. C# 数组 ArrayList List<T>区别

    System.Collenctions和System.Collenctions.Generic 中提供了很多列表.集合和数组.例如:List<T>集合,数组Int[],String[] . ...

  5. sql将两个查询结果拼接到一块,去掉重复,动态sql

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-/ ...

  6. [leetcode]120.Triangle三角矩阵从顶到底的最小路径和

    Given a triangle, find the minimum path sum from top to bottom.Each step you may move to adjacent nu ...

  7. [leetcode]66Plus One

    /** * Given a non-negative integer represented as a non-empty array of digits, plus one to the integ ...

  8. 运行命令区分webpack环境,以及axios数据请求的封装

    在开发环境和线上环境时,由于环境的不同,有时候需要修改一定的代码,可以通过配置webpack环境来减少对代码的修改:另外,有时候去看别人的代码,你可能都找不到他的数据请求在什么位置,最近在做一个vue ...

  9. MongoDb学习三(spring-data-mongodb)

    本文采用2个种配置方式.xml配置 代码配置方式进行数据库的连接.实现简单的增删该查等一些操作.代码都有注释官方文档如下https://docs.spring.io/spring-data/mongo ...

  10. 进制及其字符串之间互转——C#

    本文介绍进制数转进制数,及每个进制对应的字符串 一.首先进制数转进制数(int-->int) 1.二进制数与十进制数互转: (1)二进制数转十进制数:还没找到 (2)十进制数转二进制数:目前还没 ...