牛逼!40行Python代码一键把html网页保存为pdf,太方便了!

article/2025/9/23 19:05:46

公众号 “菜鸟学Python”, 设为 “星标”

451篇原创,和30w+一起学Python!

最近临近开学了,大家都在忙着准备各种学习的资料,准备在新的学期好好学习,充实自己。小编身边的同学也是如此,最近,小编的同学小丽就遇到了一个很棘手的问题。

她想将一个网页的Python学习的教程打印下来,方便自己来学习,但是上千页的教程,如果通过手动的方式,一个一个的去转成pdf并保存到本地,实在是麻烦的不。

这就是一个html转pdf的问题,其实网上有很多不错的html资源,但是苦于学习起来,不方便!于是小编就跟小丽保证,这点小事包在我身上。今天,小编就跟分享一下如何用Python把html资料变成pdf。

01.抓取的学习资料

如今网上的在线学习资料可谓是多如牛毛,为了方便讲解,小编就利用python3.9.2的中文文档作为演示的例子,来将其抓取并保存到本地,其网页链接如下:

https://docs.python.org/zh-cn/3.9/tutorial/index.html

打开上述链接后,大家会在网页中找到不同内容的链接地址,包括了基础的python字符、python语法等内容。


02.获取网页链接

在上图中,我们需要格外关注的是红色方格标注的链接,每个链接都会跳转到对应的子网页中,而在子网页中,就是我们想要保存的内容。

可以看到,上图中,在python速览子页面中,包含了我们需要提取的文字内容。所以将html内容保存为pdf的第一步便是获取到子页面的链接。由于教程大都是固定内容,因此对于教程的网页,大都采用的是静态页面,在网页源代码中可以很轻松的找到子页面的网页链接。

对于子网页的链接抓取,程序如下图所示:

程序中,通过BeautifulSoup库来解析网页源代码,然后提取所有的子页面链接地址并返回,如果抓取失败,则直接返回None

03.html转pdf

在得到子网页的链接后,接下来就是将html的子网页保存为pdf文件。小编使用的pdfkit库,pdfkit库可以将网页保存为pdf文档。首先小编来介绍一下pdfkit库的安装。

  • 下载https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.mxe-cross-win64.7z 并解压到本地文件中。(后台输入:pdf) 直接获取。

  • 将解压文件中的bin文件路径添加到系统变量Path中。

  • 执行pip install pdfkit

  • 执行pip install wkhtmltopdf

按照上述的操作流程,就可以安装pdfkit库。对于pdfkit库的使用,常见的用法有以下三种:

上面的程序主要完成几下几步:

首先需要指定wkhtmltopdf.exe文件的路径;

  • 然后分别通过from_url、from_file和from_string的三种方式来保存为pdf文件;

  • 需要注意的是,from_file和from_url中的第一个参数必须是一个html的字符串或者是html文档的列表;

  • 但是小编通过程序运行发现,from_url第一个参数只能是html的字符串,不能是html的列表

因此,pdfkit库只能将子网页保存为单独的pdf文档,无法直接通过pdfkit库将所有的子网页拼接成一个完整的pdf文档,小编通过PyPDF2库中的PdfFileMerger类来实现pdf文档的拼接。程序如下图所示。

程序中首先将所有的html网页保存为单独的pdf文档,然后通过PdfFileMerger类对象来实现pdf文档的拼接。最后就可以得到全部的pdf内容。最后我们通过视频的展示,来看一下程序的效果吧。

除此之外,程序不光可以抓取python3.9的中文文档,针对其他的在线文档,只需要对获取网页链接的程序进行修改即可抓取,例如对于Flask中文文档的抓取,程序只需要按照下图进行修改,即可将Flask的在线文档保存为PDF文档。

04.总结

学习Python其实非常有趣,也很有用。因为Python有大量的现成的库,可以帮助我们把工作中的很多琐碎的烦事轻松解决。小编将上述的程序稍加修改,很快就帮阿丽搞定了教程,保存为pdf发送给了她,小编与女神的关系更拉近了一步。

其实源码非常简单,大家也照着敲一边(看千边读万边,不如自己动手敲一边),有不懂的地方可以找小助手(公众号后台输入:小助手)。

为了方便大家更好的理解,我们会录制一个完整的视频在B站(详细见阅读原文),一步一步讲解这个程序,到时把源码和视频一起奉上!

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

年度爆款文案

  • 1).卧槽!Pdf转Word用Python轻松搞定!

  • 2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃

  • 3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 

  • 4).80行代码!用Python做一个哆来A梦分身 

  • 5).你必须掌握的20个python代码,短小精悍,用处无穷 

  • 6).30个Python奇淫技巧集 

  • 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 

  • 8).再见Python!我要学Go了!2500字深度分析!

  • 9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

点这里,直达菜鸟学PythonB站!!

http://chatgpt.dhexx.cn/article/QvT0M0Gw.shtml

相关文章

怎么把网页保存成pdf格式-最简单操作

网页怎么保存成pdf格式,会有很多人下载插件,其实不需要那么复杂。只需要简单的两步就可以了。 第一步:打开网页后,鼠标点击右键按打印 第二步:在目标打印机框中更改成另存为pdf模式,点击保存就可以了&…

网页保存为pdf神器(可自定义编辑)—Print Edit WE

1 如何保存一个网页为pdf文件 对于一个网页,如果想保存为一个pdf或者打印,可以直接使用CTRLP即可。但是这样对应的问题就是,网页时全部内容都会被保存进来,包括一些无关的广告或者评论图片等等。例如: 这样就不可避免…

如何查看网页保存的密码

查看网页保存密码 第一种方式,是在浏览器设置查看登陆网页保存的密码,但是不同浏览器操作不同,再次介绍一种通用使用所有网站小白也能操作的方式:修改代码 第一种: 第二种: 再次以简书为例,所有保存密码的都可以适用 首先,要点击填写的账号,会自动弹出提示你点击填充账号密…

Chrome 谷歌浏览器将整个网页保存为图片

两步解决Chrome谷歌浏览器如何将整个网页保存为图片,再也不用慢慢截取一张张图片拼接啦~ 先在需要保存为图片的页面按 F12 打开开发者工具再按 ctrlshiftp 输入full 搜索选择Capture full size screenshot

如何将网页保存成mhtml格式

如何将网页保存成mhtml格式 网页归档(英语:MIME HTML或MIME Encapsulation of Aggregate HTML Documents,又称单一档案网页或网页封 存档案)为以多用途互联网邮件扩展格式,将一个多附件网页(如包含大量图片…

[Chrome] 超级好用的网页保存插件

需求背景: 1、有时候断网,不能浏览自己收藏的文章; 2、有时候网站服务器维护,自己写的文章竟然也不能浏览; 3、有时候明明收藏了别人的文章,还重点标记了,过几天,结果找不到了&#…

edge保存网页html,微软Edge浏览器不支持网页保存功能怎么办?

微软 Edge 浏览器自发布以来一直在不断完善与改进中,在添加了扩展插件功能后,Edge 浏览器的功能性得到了显著改进,但对于某些用户来说,Edge 仍旧欠缺一项非常重要的特性——将网页保存至本地设备的功能。 “保存网页到本地”是一项…

保存html为pdf,将网页保存为PDF的几种方法

方法一 虚拟打印机打印(1) 优点:字体正常、公式正常、文字可选 不足:链接失效优点:字体正常、公式正常、文字可选 工具:IE 浏览器 Foxit Reader PDF Printer 步骤: 1.在网页空白处单击右键,选择“打印”。…

浏览器网页保存长图

在需要保存的网页页面,按F12,弹出开发者工具,再按ctrlshiftp,在弹出框输入“full”,选择弹出的“capture full size screenshot”,就可以保存需要的网页长图了

如何将网页保存为pdf

有的时候我们需要备份某一个网页,但是直接收藏有的时候源链接会被删除,如果保存成网页,文件又很多,保存成PDF格式是一个不错的选择,下面就跟大家分享一个简单的方法。 首先,点击浏览器右上角的…三个点 我…

python将网页保存为pdf,python-网页保存为pdf

今天用到是python的一个第三方库: pdfkit pdfkit 是一个十分强大的第三方库,只需要把网页的url(需要登录或其他特殊方式才能访问的除外)传入,仅靠它自己就能将网页保存为pdf。当然,pdfkit 库也支持文件和源码的传入,同样能将获取到的保存为pdf。 使用工具:pdfkit 环境准备…

如何找到jsp生成的java文件

按照上图所示Using CATALINA_BASE的路径寻找即可。

JAVA文件上传多方式

1.文件上传接收文件接口 通过post接口,上传文件 PostMapping(value "/uploadFile")ApiOperation(value "文件上传", notes "文件上传")public Result uploadFile(RequestParam (name "file") MultipartFile file) thr…

JAVA操作文件

计算机中的文件 什么是文件? 在我们日常生活中,我们认为文件就是记录着一些信息的本子。这些本子上可以记录任何我们想记录的信息。并且我们可以将多个本子夹在一起,形成一个大的文件夹。 那么计算机也是如此,在计算机中也可以通过…

java的File

一、File (一)新建File对象 File对象表示一个路径,可以是文件路径,也可以是文件夹路径;这个路径可以是存在的,也可以是不存在的。 File类常见的构造方法: 例如: 注意:因…

怎么用命令行运行.java文件

第一步 假如在e盘里有个文件夹名为Java,在Java文件夹里有一个事先写好的.java程序,如下: 第二步 打开命令行窗口(WindowR),输入cmd,点确定,如下: 第三步 转到He…

java文件操作(超详细!)

文件IO流 文件流框架: 9.0 File类 File类,即文件类。 我们如果需要获取文件的信息,或者在磁盘上创建新的文件,就需要用到File类。 File类的对象可以获取文件信息,不涉及文件的读写。文件读写需要用到下面的各种输入输…

【Java】File 文件

文件操作 File 类 属性 修饰符及类型属性说明static StringpathSeparator路径分隔符,String 类型表示static charpathSeparator路径分隔符,char 类型表示 构造方法 方法签名说明File(File parent, String child)根据父目录 File 对象 孩子路径&…

java文件如何运行

.java文件先用 javac 进行编译,生成 .class文件,在用 java 生成结果 .java(源文件).class(字节码文件) 1.在Sublime中:新建文件,另存为 D:\javacode\Hello.java //这是java的快速入…