python可以下载百度文库_不用下载券也能下载百度文库资料,Python帮你轻松搞定...

大家可能平时都有在百度文库下载文档的经历,费尽心思好不容易在文库找了一份可以用的资料,一看需要用下载券下载,搞的人很烦。

有的人为了节省时间,就任性办理了个文库VIP,再也不用纠结怎么下文档了。如果你是一个百度文库的重度用户,这样做当然没问题了。

但有些学生党、上班族,他们可能只是为了交个作业,做一个产品汇报的PPT等等,对这部分人群再去办理VIP,我觉得没必要,毕竟挣钱也不容易,咱能省就省。

有的人会说,我会选择去某宝买下载券,需要用的时候,用卖家给的账户和密码下载就可以了,这个方法我也用过,不过随着百度文库不断修复漏洞,一些卖家的账户和密码,很快就会失效,这也不是一个长久之计。

当然除了我上面说的这些方法外,还有一些其他的神操作,比如,自己一点点去复杂粘贴、放到手机版的百度文库APP里,再另存为文章、或者用众所周知的“冰点文库”……

在我看来,这些都不是最优的解决方案,我今天就和大家分享一个我自己用Python写的百度文库免下载券的小项目。当然,这个项目主要是用来学习Python爬虫的,如果有任何侵权嫌疑,请联系我删除!

2abd0669bb3a

1.优点

不仅可以下载word文档,而且能下载PPT;

可以下载一个完整的文档;

不需要用一些某宝卖家的漏洞网址。

2.准备工作

(1)本次程序主要用到了火狐浏览器的selenium,大家可以在下面网址下载自己火狐浏览器对应的驱动geckodriver。下载地址:https://github.com/mozilla/geckodriver/releases/

下载解压后,将geckodriver.exe安装在Python的安装目录Scripts里面,之后就可以正常使用了。

(2)因为本次项目还涉及到了PPT文档的下载,所以,如果你没安装pptx模块,需要在命令行输入pip3 installpython-pptx提前安装好。

3.PPT文档下载

首先我们随便找一个需要下载券的PPT文档,本文以https://wenku.baidu.com/view/a132c661eef9aef8941ea76e58fafab069dc443d.html?rec_flag=default&sxts=1570202117357为例,打开开发者工具,对文档中图片进行分析,如下图所示:

2abd0669bb3a

图片保存在标签为div里面,所以写代码时首先需要找到这个标签,然后再把图片的url提取出来,同时,提取url时还要注意,有的属性是“src”,有的是“data-src”,不然就会出现文档丢失。主要代码如下:

2abd0669bb3a

4.下载图片

提取到图片的url后,就可以下载所有的图片,并以pictures命名保存在指定的路径下。代码如下:

2abd0669bb3a

5.组合成PPT

此时需要将上面下载好的图片,利用编写的函数重新合成ppt,这里就要用到刚才提前准备好的生成PPT需要的包,此外,为了保证程序顺利运行,还需要一个ppt模板,这个模板里面只有一个图片的占位,主要是为了让所有图片安装模板来创建成新的幻灯片。代码如下:

2abd0669bb3a

6.word文档下载

关于文档下载,本文以https://wenku.baidu.com/view/1b5ee5dbad51f01dc281f13e.html?sxts=1570243034873为例。

主要难点是当页数过多时,会出现“继续阅读”的字样,此时需要selenium模拟人去自动点击,所以,需要提取找到“继续阅读”的按钮;另外,还要获取文档的下载总页码,最后还需要对提取的文本进行分段整理。

(1)、寻找“继续阅读”位置

本文主要用到了正则表达式,以及js语法。首先要找到继续阅读的位置,如下图所示:

2abd0669bb3a

(2)、获取总页数

要获取整个文档,首先要找到文档的总页数,在下图中找到保存总页数的标签。

2abd0669bb3a

还要分析文档中的文字保存在哪个标签,如下图所示:

2abd0669bb3a

可以看到,文字主要保存在p标签里,我们找到相应的p标签,然后遍历每一页,提取文字。最后,还要设置一个判断变量,因为提取的文字会有很多行,有的是一个段的,有的不是一段的文字,这里需要处理一下,主要代码如下:

2abd0669bb3a

7.写入文档

将下载好的文档,以特定的名字写入新的文档,这里没什么难度,代码如下:

2abd0669bb3a

8.结果展示

(1)、PPT下载

2abd0669bb3a

2abd0669bb3a

(2)、word下载

2abd0669bb3a

2abd0669bb3a

总结

今天分享的这个用百度文库免下载券的实战项目,主要用自动化测试工具selenium,可以帮助大家获取一些付费的学习资料,大家不用再去某宝买下载券,或者办VIP了,如果有感兴趣的小伙伴,后台回复「文库」即可获得项目源代码。

最后,再次声明,本次项目主要用来学习Python爬虫,不能拿来商用,本人概不承担所有法律责任,如果有侵权,请联系作者,我马上删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将对象映射到多个XML模式–天气示例

我已经在EclipseLink JAXB(MOXy)的XmlPath和外部绑定文件扩展中撰写了以前的文章。 在本文中,我将通过将单个对象模型映射到两个不同的XML模式来演示这些扩展的功能。 为了使示例更加“真实”,XML数据将来自提供天气信息的两种不同…

STM32F1笔记(九)通用定时器

STM32F1的定时器分为TIME1/8等高级定时器,TIME2~5等通用定时器,TIME6/7基本定时器。三者的区别主要参考《STM32中文参考手册》里特性的每种定时器主要特性的异同。 先看中文手册中通用定时器的简介: 通用定时器的寄存器有一个比较有趣的地方…

佳能MP258的5200错误和P08代码解决方法及清零方法

参考文章转载于:https://www.cnblogs.com/arcer/p/5659624.html

tomcat通过conf-Catalina-localhost目录发布项目详解

转自:http://www.cnblogs.com/iyangyuan/p/3316444.html,感谢 杨元。 Tomcat发布项目的方式大致有三种,但小菜认为通过在tomcat的conf/Catalina/localhost目录下添加配置文件,来发布项目,是最佳选择。 因为这样对tomca…

c++保存图标到dll_自动保存邮件附件至指定文件夹

最近有个需求,ERP系统会自动发很多csv附件到我邮箱,我需要把这些附件上传到FTP服务器,服务器会把这些csv的数据写到另外一个系统的数据库。每次大概有30个邮件,每个邮件有一个附件,而且附件的名字都一样,是…

有时在Java中,一个布局管理器是不够的

在开发Java Swing应用程序时,最经常的是,我们需要在多个嵌套面板中使用多个布局管理器。 通常这不是问题,并且被认为是几乎所有人类已知语言的所有UI开发的常规做法。 但是,大多数情况下,对于UI中的每个面板&#xff0…

VM克隆之后启动eth0找不到eth0:unknown interface:no such device

问题出现:VMware 克隆之后,ifconfig命令执行找不到eth0,报错 eth0:unknown interface:no such device 是因为/etc/sysconf/network-scripts/ifcfg-eth0配置复制过来和虚拟主机的网卡Mac等信息不匹配 解决方法; 删除/etc/udev/rules.d/70-pers…

“精彩极了”和“糟糕透了”

虽然已经是25岁,但是对小学的一篇课文依然记忆尤新,《“精彩极了”和“糟糕透了”》。 课文正文 记得七八岁的时候,我写了第一首诗。母亲一念完那首诗,眼睛亮亮的,兴奋地嚷着:“巴迪,真是你写的…

python中print的用法_Python中print函数简单使用总结

Python中print函数简单使用总结 print函数是Python的入门,每一个学习python的人都绕不开这个函数,下面介绍一下这个函数的用法。 打开电脑,选择python软件,下面选择python 3.7为例进行介绍,点击python 3.7,…

STM32F1笔记(十)PWM

PWM:Pulse Width Modulation,脉冲宽度调制。是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单来说就是对脉冲宽度的控制。 在《STM32中文参考手册》里可以看到 占空比:占空比是指在一个脉冲循环内,通电时…

从GlassFish 3.x扩展到WebLogic 12c Server

Oracle针对GlassFish服务器的策略的主要目标之一是“与Fusion Middleware and Products集成”(来源: Community Roadmap,2010年5月 )。 在今年早些时候,您听到了很多关于两台服务器合而为一的恐惧和谣言。 看到这两种产…

移动互联网时代:如何让女孩爱上你在一分钟内?

部分《移动互联网时代:让女孩爱上你在一分钟内》其实我只是做原来的盲目思想有移动互联网的自主知识产权,他没有详细说明如何真正让女孩爱上你在一分钟内?在真实生活中,预期也没有那么简单,易于,毕竟&#…

hashset去重原理_基于simhash的文本去重原理

互联网网页存在着大量重复内容,必须有一套高效的去重算法,否则爬虫将做非常多的无用功,工作时效性无法得到保证,更重要的是用户体验也不好。业界关于文本指纹去重的算法众多,如 k-shingle 算法、google 提出的simhash …

解决express video 手机无法播放的问题

http://stackoverflow.com/questions/24976123/streaming-a-video-file-to-an-html5-video-player-with-node-js-so-that-the-video-c 项目地址 https://github.com/shenggen1987/mp4-demo express index.jade extends layoutblock contenth1 titlep Welcome to #{title}vid…

STM32F1笔记(十一)ADC

查看《STM32中文参考手册》里ADC的介绍和特性 STM32的ADC最大转换速率为1Mhz,即1us,在ADCCLK14M,采样周期为1.5个ADC时钟下得到。当ADC的时钟超过14M时,将导致结果准确度下降。 规则通道相当于正常运行的程序。注入通道就相当于中…

使用JPA和Spring 3.1进行事务配置

1.概述 本教程将讨论配置Spring Transactions ,使用Transactional批注和常见陷阱的正确方法 。 要更深入地讨论核心持久性配置,请查看Spring with JPA教程 。 有两种不同的配置事务的方法– 批注和AOP –每种都有自己的优势–我们将在这里讨论更常见的…

java epoll select_字节跳动高频面试题,操作系统/算法/Java等。

字节跳动# Java▲ 20 Java 中垃圾回收机制中如何判断对象需要回收?常见的 GC 回收算法有哪些?▲ 18 synchronized 关键字底层是如何实现的?它与 Lock 相比优缺点分别是什么?▲ 17 hashmap 和 hashtable 的区别是什么?▲…

Xamarin Android项目运行失败

Xamarin Android项目运行失败 错误信息:Build Failed: MonoDroid does not support running the previous version. Please ensure your solution builds before running or debugging it.这是由于由于项目生成失败,并找不到以前编译的结果。这时&#…

STM32F1笔记(十二)DAC

先看《STM32中文参考手册》中DAC的介绍 引脚的定义与ADC类似 这里需要留意手册提供的注意,DAC应该是输出,但是GPIO初始化配置时却要设置为模拟输入。 DAC配置示例 void DAC_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;DAC_InitTypeDef DAC_Init…

有关为旧版代码创建存根的更多信息–测试技术7

在上一个博客中 ,我谈到了如何处理行为不佳的不可测试的 (1) SitePropertiesManager 类,以及如何通过提取接口来创建存根。 但是,如果由于旧类的源代码已被锁定在第三方JAR文件中而无法访问它,会发生什么情…