最近我妈的文库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. 面试官问我:Object o = new Object() 占用了多少个字节?

    小小面试一下 前言蜜语 最近马师傅火的不要不要的,虽然没有抢到耗子尾汁的商标注册权,但是必须得蹭一波马师傅的热度,下面就是闪电五连鞭的教学环节,你准备好了吗! 在正式内容开始前先甩两篇关于类加载机制和 ...

  2. 聊聊 HTTP 常见的请求方式

    在互联网已经渗透了生产.生活各个角落的今天,人们可以登录微信语音聊天,可以随手"扫"到各种功能的二维码,可以通过方便快捷的无人超市购物--这种互联网领域的跨越式发展,不仅满足了人们 ...

  3. svn怎么上传文件

    首先去网站下载TortoiseSVN,并安装   安装完后随便打开一个文件夹,如图,笔者在 E:\svn\ 文件下创建了一个simbo文件夹,选中并右键,出现了TortoiseSVN应用的选项,我们点 ...

  4. [leetcode]380. Insert Delete GetRandom O(1)设计数据结构,实现存,删,随机取的时间复杂度为O(1)

    题目: Design a data structure that supports all following operations in average O(1) time.1.insert(val ...

  5. 常用的linux指令

    a.cd /home 进入 '/ home' 目录' b.cd .. 返回上一级目录 c.cd ../.. 返回上两级目录 d.mkdir dir1 创建一个叫做 'dir1' 的目录' e.mkdi ...

  6. mysql数据库连接java

    1 1.创建配置文件jdbc.properties 2 3 jdbc.driver=com.mysql.jdbc.Driver 4 jdbc.url=jdbc:mysql://localhost:33 ...

  7. 自动化运维工具-Ansible之6-Jinja2模板

    自动化运维工具-Ansible之6-Jinja2模板 目录 自动化运维工具-Ansible之6-Jinja2模板 Ansible Jinja2模板概述 Ansible Jinja2模板使用 Ansib ...

  8. logback运行时动态创建日志文件

    package com.example.demo.config; import ch.qos.logback.classic.Level; import ch.qos.logback.classic. ...

  9. 神奇的 SQL 之性能优化 → 让 SQL 飞起来

    开心一刻 一天,一个男人去未婚妻家玩,晚上临走时下起了大雨 未婚妻劝他留下来过夜,说完便去准备被褥,准备就绪后发现未婚夫不见了 过了好久,全身淋的像只落汤鸡的未婚夫回来了 未婚妻吃惊的问:" ...

  10. JAVA静态代理和动态代理理解

    代理 代理是英文 Proxy 翻译过来的.我们在生活中见到过的代理,大概最常见的就是朋友圈中卖面膜的同学了. 她们从厂家拿货,然后在朋友圈中宣传,然后卖给熟人. 按理说,顾客可以直接从厂家购买产品,但 ...