Python3,2行代码,多种方法,直接把网页内容转换成PDF文档和图片。

2023-11-19

1、引言

小鱼:小屌丝,你这是干啥呢?
小屌丝:我的女神想要这个网页的内容。
小鱼:那你也不能这一点点的复制粘贴啊,
小屌丝:为了我的女神,再辛苦我都愿意…
小鱼:咱能不能man一点,你直接把网页内容爬下来不就完事了,
小屌丝:我的女神还要把这些内容转换成PDF,
小鱼:你的女神事可真多…
小屌丝:鱼哥,你有什么好的法子吗?
小鱼:嗯,办法嘛,确实有
小屌丝:我懂。
小鱼:…上道这么快,果然为了你的女神,你什么都舍得,我也不磨叽了,直接上教程。

2、代码实战

关于网页的内容转换成PDF,通常思路:

  • 爬取网页内容
  • 保存到本地
  • 转换成PDF文档

这种方法, 确实可以实现,但是,很麻烦,需要转两次。
而今天,小鱼给大家分享的方法,就3行代码,一次搞定。

2.1 模块介绍

2.1.1 pdfkit

pdfkit 是把 HTML+CSS 格式的文件转换成 PDF 的一种工具,它是 wkhtmltopdf 这个工具包的 python 封装。

2.2 安装

pip install pdfkit

其它安装方式,直接看这两篇:

Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
Python3:我低调的只用一行代码,就导入Python所有库!

敲黑板:
pdfkit 是基于 wkhtmltopdf 的封装,所以需要先安装 wkhtmltopdf 。

wkhtmltopdf官网:https://wkhtmltopdf.org/

2.3 代码实例

2.3.1 URL 对应网页转 PDF

代码示例:

# -*- coding:utf-8 -*-
# @Time   : 2022-06-12
# @Author : carl_DJ

import pdfkit

'URL 对应网页转 PDF'
#wkhtmltopdf.exe 为本地安装的路径
config = pdfkit.configuration(wkhtmltopdf=r"D:\ProgramFiles\wkhtmltopdf\bin\wkhtmltopdf.exe")
#调用pdfkit.from_url参数,转换PDF
pdfkit.from_url(r'https://blog.csdn.net/wuyoudeyuer?type=blog', 'Carl_奕然.pdf', configuration=config)

运行结果:

在这里插入图片描述

2.3.2 HTML 文件转 PDF

代码示例:

# -*- coding:utf-8 -*-
# @Time   : 2022-06-12
# @Author : carl_DJ

import pdfkit

'HTML 文件转 PDF'
config = pdfkit.configuration(wkhtmltopdf=r"D:\ProgramFiles\wkhtmltopdf\bin\wkhtmltopdf.exe")
#调用pdfkit.from_file参数,转换PDF
pdfkit.from_file(r'D:\Carl_奕然的博客.html, 'Carl_奕然.pdf', configuration=config)

敲黑板
读取html,需要调用pdfkit.from_file 参数。

2.3.3 字符串转 PDF

代码示例:

# -*- coding:utf-8 -*-
# @Time   : 2022-06-12
# @Author : carl_DJ

import pdfkit

'字符串转 PDF'
config = pdfkit.configuration(wkhtmltopdf=r"D:\ProgramFiles\wkhtmltopdf\bin\wkhtmltopdf.exe")
#调用pdfkit.from_file参数,转换PDF
pdfkit.from_string(r'Ilike wangxinling, 'Carl_奕然.pdf', configuration=config)

运行结果
在这里插入图片描述

2.4 拓展

小屌丝:鱼哥,如果我不想写代码,能不能一键转换成PDF呢?
小鱼:嗯,这个可以实现,但是不能一键,必须一行代码。
小屌丝:也行,能少些一行是一行。

2.4.1 网页转换PDF

开篇小鱼也说过:pdfkit 是基于 wkhtmltopdf 的封装,所以功能肯定也是基于 wkhtmltopdf 的。
于是乎,我们就能先到,直接用wkhtmltopdf 的功能,看看能否实现PDF转换。
代码示例

  • 第一步、找到wkhtmltopdf的安装路径,以小鱼的为例:
    D:\ProgramFiles\wkhtmltopdf\bin\wkhtmltopdf.exe
  • 第二步、powershell打开,输入命令
    .\wkhtmltopdf.exe https://blog.csdn.net/wuyoudeyuer/category_9471191.html D:\carl.pdf

运行结果

在这里插入图片描述

解析

  • .\wkhtmltopdf.exe :调用wkhtmltopdf.exe
  • https://blog.csdn.net/wuyoudeyuer?type=blog:url地址
  • D:\carl.pdf:保存的路径

2.4.2 网页转换图片

代码示例
我们来试一下网页转换成图片,
同样,
第一步、打开powershell,进入到bin文件夹下
第二步、输入命令:.\wkhtmltoimage.exe https://blog.csdn.net/wuyoudeyuer/category_9471191.html D:\carl.png

运行结果

在这里插入图片描述

3、总结

今天的分享,就到这里了。
是不是奇奇怪怪的姿势,又增加了呢。
我们总结一下今天的内容:
pdfkit 可以可以实现的转换

  • URL 对应网页转 PDF
  • html文件转 PDF
  • 字符串转 PDF

wkhtmltopdf.exe可以实现的转换:

  • 网页转图片
  • 网页转 PDF

所以,学会了这个第三方库,就实现了直接转换成PDF的方法。
最后,
关注小鱼博客,带你学习更多关于python第三方库的知识。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3,2行代码,多种方法,直接把网页内容转换成PDF文档和图片。 的相关文章

随机推荐

  • SylixOS IDE工具使用

    1 问题描述 使用RealEvo IDE 以下简称IDE 开发程序时 误操作输入错误的函数名称时 编译器不会报错 输入错误的函数名示例代码如程序清单1 1所示 程序清单 1 1 示例代码 include
  • 软件自动化测试对软件产品起到什么作用?有什么注意事项?

    自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程 通常 在设计了测试用例并通过评审之后 由测试人员根据测试用例中描述的规程一步步执行测试 得到实际结果与期望结果的比较 一 软件自动化测试的作用 1 提高测试效率 自动化测试可以大幅
  • 小记MAC安装GIT

    MAC安装GIT教程 0 安装方式说明 MAC安装软件的时候 有一个很好用的工具 叫 homebrew 大家可以试一下 我这里采用下载安装包的方式进行 1 下载git 我这里就暂且选择git最新版本 2 36 1 正常情况下 我们一般不选择
  • 经典的笔试题解析《高质量C/C++编程》

    对于 高质量C C 编程 想必这个已经是早已成名的经典书籍了 在此 笔者借用两三个题目 解析下面代码 错误示列 请勿模仿 正确的代码 在后面部分 include
  • 快排 + 二分

    一直觉得快排跟二分很像 大家也都有很多变种 在此整理一下 快排的特点是 需要一个pivort 让左边比他大 右边比他小 反之亦然 每次排序都有一个数的位置被确定 两种写法其实是一种 经典partition写在一个函数里 class Solu
  • Flutter BottomNavigationBar组件(底部导航栏)

    Flutter BottomNavigationBar 组件 BottomNavigationBar 常见的属性 属性名 说明 items List 底部导航条按钮集合 页面集合 iconSize icon currentIndex 默认选
  • 单相逆变器第二课、DC/AC电路基础理论学习

    这周是真心忙 到现在才把DC AC单相部分的理论知识看完 但由于是第一次接触电力电子 写的不好的地方 大家轻喷 DC AC变换电路成为逆变 也就是直流电压 电流 向交流电压 电流 变化 先来看下电压型逆变器 电压型逆变器主要有三类 电阻负载
  • 90 后学霸博士 8 年进击战:用机器学习为化工研究叠 BUFF

    本文首发自微信公众号 HyperAI超神经 内容一览 ScienceAI 作为近两年的技术热点 引起了业界广泛关注和讨论 本文将围绕 ScienceAdvances 的一篇论文 介绍如何利用机器学习 对燃煤电厂的胺排放量进行预测 关键词 A
  • 简短的 mouseover 显示与隐藏层的办法

    简短的 mouseover 显示与隐藏层的办法 在制作 mouseover 和 mouseout 显示 隐藏层的时候 有时总会出现 mouseover 层里面的对象时 层消失的情况 这是因为mouseover 层内 对象时 会对前层产生两个
  • 从零开始学习OpenWrt完美教程

    Cisco Linksys在2003年发布了WRT54G这款无线路由器 同年有人发现它的IOS是基于Linux的 然而Linux是基于GPL许可证发布的 按照该许可证Cisco应该把WRT54G 的IOS的源代码公开 2003年3月 Cis
  • ASP.NET Core项目无法使用命令行执行ef命令

    在项目目录下 打开命令行窗口 执行dotnet ef help 提示以下信息 报错信息 无法执行 因为找不到指定的命令或文件 可能的原因包括 你拼错了内置的 dotnet 命令 你打算执行 NET Core 程序 但 dotnet ef 不
  • mv:重命名和移动文件、文件夹

    在Linux中 mv命令可以用于重命名和移动文件 也可以用于重命名和移动文件夹 注意 如果目标目录已经存在同名的文件或文件夹 mv命令将覆盖目标文件或合并目标文件夹 请注意 在使用mv命令时要小心 确保提供正确的文件名和路径 以免误操作造成
  • 这样的程序员年薪可以达到多少呢?

    转载于 https www cnblogs com Rainbow890722 p 10456640 html
  • 美媒体称谷歌卫星技术可实时定位全球军舰

    5月17日 美国 AOL防务 网站刊登文章 称谷歌公司将推出一款新软件 可让用户对任何一艘海上船只进行实时追踪定位并了解水深数据 包括美海军军舰 做了美军做不到的事 据悉 谷歌公司耗资数百万美元发展能够精确定位船只方位并搜集水深数据的卫星技
  • Redis 跳跃表

    跳跃表 跳跃表基础知识 跳跃表 网易公开课 gt 跳跃表 总结 效率堪比各种平衡树结构 如红黑树 B树 B 树 实现起来简单 仅用到链表的知识 基于概率论 有个随机过程 但表现不错
  • 神经网络优化(损失函数:自定义损失函数、交叉熵、softmax())

    参考 神经网络优化 损失函数 自定义损失函数 交叉熵 softmax 云 社区 腾讯云 1 前向传播 搭建网络结构 反向传播 训练网络参数 2 激活函数 提高了模型的表达里 使模型更具有表达力 3 神经网络的层数 通常用神经网络的层数和神经
  • 区块链应用技术学习(一)

    众所周知 区块链技术的特性就在于其去中心化与不可篡改性 由于这俩点的特性的存在 使得区块链技术的发展颇有看头 于是小编我也踏上了区块链学习的过程 文章目录 前言 一 区块链是什么 二 区块链作用 1 企业 2 个人 总结 前言 在学习区块链
  • Android资源管理中的SharedLibrary和Dynamic Reference-------之资源共享库(一)

    一 引言 共享库的概念 相信大家都有所了解 它有有许多优点 可以设想 在一个系统上要跑100个应用 并且它们都使用到了同一个库 如果这个库做成静态库 那么每个应用中都要打包一次这个库 100个应用就是100次 这无疑是重复的 我们可不可以在
  • FIFO读写控制

    如果在两个模块之间传输数据 两个模块之间的处理速率不同 会导致采集数据的遗漏或错误 在他们之间加一个数据缓存器 所有数据先经过缓存器缓存 再输入数据接送模块 创建两个模块 一个 作为发送模块 一个作为接受模块 发送模块检测到 fifo为空开
  • Python3,2行代码,多种方法,直接把网页内容转换成PDF文档和图片。

    网页转换成PDF 1 引言 2 代码实战 2 1 模块介绍 2 1 1 pdfkit 2 2 安装 2 3 代码实例 2 3 1 URL 对应网页转 PDF 2 3 2 HTML 文件转 PDF 2 3 3 字符串转 PDF 2 4 拓展