Python教你付费文档免费下载,省出零食钱

Python免费下载百度文库文档
本文介绍了一种使用Python从百度文库免费下载文档的方法,通过解析网页请求和抓取JSON数据来提取文档内容。

前言

在这里插入图片描述

我们下载资料经常会用到百度文库,但百度文档大部分资料下载是要收费的,总是会遇到想要的资料开会员才能下载,但是为了下一篇资料,开一个会员总会觉得太浪费了,毕竟现在各大会员也有要涨价的趋势了。

需要Python零基础学习资料的伙伴,可以在公众号【码农资料库】中回复【py】自行领取 包括以下学习资料:

① Python所有方向的学习路线图,清楚各个方向要学什么东西

Python课程视频,涵盖必备基础、爬虫和数据分析

Python实战案例,学习不再是只会理论

Python电子好书,从入门到高阶应有尽有

⑤ 华为出品独家Python漫画教程,手机也能学习 ⑥ 历年互联网企业Python面试真题,复习时非常方便

在这里插入图片描述

在这里插入图片描述

你说可以不下载只进行复制复制,但是百度文库就连超出复制字数也要收费,或者是干脆不能复制。

在这里插入图片描述

如何解决这个问题,现在我们就来学学如何利用Python免费下载文档。

在这里插入图片描述

由于百度文库的内容是通过网页展示的,那我们猜他是通过后台加载进来的。可以先通过Ctrl+u查看HTML源码,看源码里面是否有文档数据。很遗憾HTML源码里面并没有文档内容。

确定不是通过HTML加载的之后,我们就可以大胆地猜测他是通过json异步加载。所以通过F12打开开发者管理工具network抓包,查看页面加载过程请求的URL。这里会有大量的请求,但是我们仔细观察会发现有一个0.json的URL返回的数据就是文档的文本数据。

在这里插入图片描述

拿到请求文档数据的URL后需要确定URL参数。通过查看headers确定请求方式为GET请求。请求参数里x-bce-range和token是变动的,其他都是固定不变。

在这里插入图片描述

token这个东西很多时候都会写入到HTML页面里去,用途是防csrf攻击。但是百度文档里面的token有什么用我们不用关心,重要的是这个token那里来。去HTML源代码里查看这两个变量能不能获取到。

在这里插入图片描述

果然,在HTML源码里有一段js代码,其中就包含了所有请求文档的URL。看起来有点像,但还是不一样啊!其实这里是包含了转移符 \ ,还有一个比较奇怪的 \x22 其实是一个双引号。把这段不规范的json数据提取出来替换掉 \ 和 \x22就是一个标准的json格式数据。

提取文档数据URL代码实现

在这里插入图片描述

拿到URL之后继续发送请求获取文档数据,文档数据是分段保存到json里面的,json里面的数据如下图所示。

在这里插入图片描述

字段解释:

 c: 数据
    p: 位置
    r: 暂时不确定作用
    s: 字体样式
    t: 数据格式(word文本,pic图片)
    ps: 样式,_enter:1 表示换行,同一段的文本ps值为空
123456

由于图片加载比较特殊,有时候可能通过一个请求加载两张图片,不好确定图片的位置,所以这里暂且不考虑图片,我们只抓取文本。

在这里插入图片描述

到这里就已经可以把一个百度文档的文本内容完整下载下来。

网上随机选一篇文档来测试效果,纯文本的文档效果贼好。缺点就是不能同时下载图片插入到word里面去。

在这里插入图片描述

Python 是一种易于学习又功能强大的编程语言。它提供了高效的高级数据结构,还有简单有效的面向对象编程。Python 优雅的语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。 Python 解释器及丰富的标准库以源码或机器码的形式提供,可以到 Python 官网 https://www.python.org/ 免费获取适用于各个主要系统平台的版本,并可自由地分发。这个网站还包含许多免费第三方 Python 模块、程序和工具以及附加文档的发布页面或链接。 Python 解释器易于扩展,可以使用 C 或 C++(或者其他可以通过 C 调用的语言)扩展新的功能和数据类型。Python 也可用于可定制化软件中的扩展程序语言。 这个程非正式地介绍 Python 语言和系统的基本概念和功能。最好在阅读的时候准备一个 Python 解释器进行练习,不过所有的例子都是相互独立的,所以这个程也可以离线阅读。 有关标准的对象和模块,参阅 Python 标准库。Python 语言参考 提供了更正式的语言参考。想要编写 C 或者 C++ 扩展可以参考 扩展和嵌入 Python 解释器 和 Python/C API 参考手册。也有不少书籍深入讲解Python 。 这个程并没有完整包含每一个功能,甚至常用功能可能也没有全部涉及。这个程只介绍 Python 中最值得注意的功能,也会让你体会到这个语言的风格特色。学习完这个程,你将可以阅读和编写 Python 模块和程序,也可以开始学习更多的 Python 库模块,详见 Python 标准库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值