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里面去。

在这里插入图片描述

-END-


读者福利:如果大家对Python感兴趣,这套python学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

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

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

③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论

④ 20款主流手游迫解 爬虫手游逆行迫解教程包

爬虫与反爬虫攻防教程包,含15个大型网站迫解

爬虫APP逆向实战教程包,含45项绝密技术详解

⑦ 超300本Python电子好书,从入门到高阶应有尽有

⑧ 华为出品独家Python漫画教程,手机也能学习

⑨ 历年互联网企业Python面试真题,复习时非常方便

在这里插入图片描述

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取 ↓↓↓【保证100%免费】
或者

点此链接】领取

  • 13
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于百度文库付费文档,一般情况下是需要付费才能查看和下载的,因此直接爬取是不合法的行为。如果您需要获取付费文档内容,可以考虑购买或者向作者进行合法获取。 如果您需要获取免费文档,可以尝试使用 Python 的 requests 库和 BeautifulSoup 库来实现。具体步骤如下: 1. 通过 requests 库发送请求,获取文档页面的 HTML 内容。 2. 使用 BeautifulSoup 库解析 HTML 内容,获取文档下载链接。 3. 通过 requests 库再次发送请求,获取文档下载链接对应的文件内容。 4. 将文件内容保存到本地。 下面是一个简单的示例代码: ```python import requests from bs4 import BeautifulSoup # 定义请求头 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 构造请求URL doc_id = '123456' # 文档id url = 'https://wenku.baidu.com/view/{}/{}.html'.format(doc_id, doc_id) # 发送请求,获取HTML内容 response = requests.get(url, headers=headers) html_content = response.text # 解析HTML内容,获取下载链接 soup = BeautifulSoup(html_content, 'html.parser') download_url = soup.find('a', class_='downBtn')['href'] # 发送请求,获取文件内容 response = requests.get(download_url, headers=headers) file_content = response.content # 保存文件 with open('file.docx', 'wb') as f: f.write(file_content) ``` 需要注意的是,该代码仅适用于免费文档爬取,对于付费文档爬取是不合法的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值