Python将网页转成pdf神器pdfkit库的使用__一蓑烟雨任平生

pdfkit | 利用python实现html文件转pdf 在用jupyter notebook写代码文档的时候,有时需要导出pdf版本,但jupyter会报错。我在想,除了网上的debug方法,还没有其他方案可以生成pdf。 度娘搜了下,很多博客推荐Python的第三方库pdfkit,可以将网页、html文件以及字符串生成pdf文件。 其实也有很多软件提供pdf生成服务,但这样太不python了,那下面就来试试pdfkit怎么用吧! 三步实现自动生成pd... 阅读详情


前言

有的网页查看起来不是很方便,于是就想到了,转成pdf转下来慢慢看?

先看下成果图哈

在这里插入图片描述
最终效果就是这样子,感觉是不是很炫酷,哈哈哈


一、安装必要软件

wkhtmltopdf,这个工具的下载网站是:点这里

感觉下载慢的直接加群也可以

在这里插入图片描述

群里工具太多,需要的随便拿
在这里插入图片描述

二、开怼代码

1.引入库

pip install pdfkit

2.导包

import pdfkit
import requests
from lxml import etree
import re

3.糟糕网站

self.url = "https://www.dusaiphoto.com/article/detail/2/"

4.创建对象HtP

Html转Pdf简写对象名HtP,pdfkit.configuration换成自己的路径哦
对,现在你就有对象了,不是单身了

class HtP:
    def __init__(self):
        self.uu = 'https://www.dusaiphoto.com%s'
        self.url = "https://www.dusaiphoto.com/article/detail/2/"
        self.contents = ''
        self.confg = pdfkit.configuration(wkhtmltopdf=r'F:\pdf\wkhtmltopdf\bin\wkhtmltopdf.exe')
        self.list_url = ["https://www.dusaiphoto.com/article/detail/2/", ]

    def __del__(self):
        print("------------------------打印结束--------------------------")

5.获取链接

因为你要的pdf不是一个,所以要把所有界面的Html组装起来

思路:

  • 找到第一个地址,打开后根据正则获取到每个链接
  • 这里使用什么方法不限制,Xpath?BS4?Re?随意
  • 我这里使用Re获取到每个连接,然后拼接到数组

在这里插入图片描述

# 获取链接
    def get_list_url(self):
        html = requests.get(self.url).content.decode('utf-8')
        con = \
            re.findall(r'<div class="card-text" style="overflow: hidden">(.+?)<div class="container-fluid">', html,
                       re.S)[0]
        lists = re.findall(r'<p class="mb-0 font-body">.+?<a href="(.+?)".+?class="no-underline color-lightgray"',
                           con, re.S)
        for isurl in lists:
            isurl = self.uu % isurl
            self.list_url.append(isurl)
        return self.list_url

6.获取正文内容

每个连接都是一个页面,获取内容返回即可,依旧三种方法,都可以,这里我用的依旧是正则Re

# 获取正文内容
    def get_content(self, url):
        html = requests.get(url).content.decode('utf-8')
        content = \
            re.findall(r'<div class="mt-4">(.+?)<div class="alert alert-secondary text-muted mt-4 mb-4 font-body">',
                       html, re.S)[0]
        return content

7.循环每个内容拼接成大的页面

        for url in urls:
            print(url)
            content = self.get_content(url)
            self.contents = '%s%s%s' % (self.contents, content, '<p><br><p>')

这里的拼接用的%s%s%s,当然使用+=也没错,看自己喜好,开心就好啦

8.开始打印内容!

 # 保存html为pdf文档
    def dypdf(self, contents):
        contents = etree.HTML(contents)
        s = etree.tostring(contents).decode()
        print("开始打印内容!")
        pdfkit.from_string(s, r'out.pdf', configuration=self.confg)
        print("打印保存成功!")

打印为什么不直接打印内容?

答:这个问题问的好,直接打文字,你以为是打稿机?输入什么就进去什么?写入pdf肯定是2进制的写入,直接写汉字进去,计算机听不懂的

那三个参数分别代表什么?

pdfkit.from_string(s, r'out.pdf', configuration=self.confg)

答:点开源码看看?
在这里插入图片描述
我还解释吗?写入文件,输出路径,打印程序,看不懂英语的百度翻译去好了,其他很多参数用不到,所以不需要写

9.最后一步来个main跑起来

if __name__ == '__main__':
    HtP().run()

OK,完事

最后,附上源码?

哦哦,太占地方了,不上源码了,有兴趣的可以看我码云

这是张张的码云项目地址呀

总结

代码一步步分析很到位,应该看的懂
这就是Html转Pdf的所有内容了,俺的演讲完毕,谢谢大家聆听

在这里插入图片描述

Py的PDFKit:Python PDFKit库简介、安装、使用方法详细攻略 PDFKit是一个非常灵活和强大的库,可帮助您将HTML和CSS转换为高质量的PDF文件。在上面的代码中,'example.html’是您要转换为PDF的HTML文件的名称。'example.pdf’是您要生成的PDF文件的名称。PDFKit还提供了很多选项,您可以使用这些选项来配置PDF的生成方式。PDFKit是一个允许您使用Python生成PDF文件的库。它能够将您的HTML和CSS文件转换为高质量的PDF。Py的PDFKit:Python PDFKit库简介、安装、使用方法详细攻略。 阅读详情

相关推荐

1、PDFKit 简介(PDF 中文手册)

上午好 太棒了 非常感谢 那么 欢迎参加今天的讲坛 对 iOS 版 PDFKit 的介绍 过去这 12 个月里 我们做了许多改动 我们特别激动地想让大家 看到所有的改动 所有的重大改进 但在开始前 先介绍一下自己 我叫 Jeremy Bridon 是 Apple 的软件工程师 负责核心图形的工作 然后 我是 Nicki Brower 也是 Apple 的软件工程师 真棒 好 今天我们有 很多东西想讲 不过首先要讲的 还是 PDF 文件格式 本身 然后我们会 留些时间讨论一下 整个框架 接着 讨论一下文档

iCloudEnd的博客 3636

Py之pdfkit:pdfkit的简介、安装和使用方法、案例应用之详细攻略

​ Py之pdfkit:pdfkit的简介、安装和使用方法、案例应用之详细攻略 目录 pdfkit的简介 pdfkit的安装和使用方法 pdfkit的案例应用 pdfkit的简介 pdfkit是Python 2 和 3 的封装器,用于使用 Webkit 将 HTML 转换为 PDF 的 wkhtmltopdf 实用工具。pdfkit是 Ruby PDFKit 库的改编版本。 pdfkit的安装和使用方法 pip install pdfkit pip install -i https

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 3551

无人机芯片模块技术要点分析

恶劣环境下信号稳定性:无人机在恶劣环境下工作时,遥感系统采集的信号往往很不稳定,视频信号处理芯片需要具备强抗干扰能力,能辨别脉冲脉宽为50ns以上、幅度为0V~4.5V的输入信号。这种架构能兼顾强大的运算能力和灵活的接口控制。芯片小型化:麻省理工学院的研究人员已设计出仅20平方毫米的微型芯片,可处理无人机飞行所需的惯性数据和相机图像,为微型无人机的发展奠定了基础。光子集成芯片(PIC) :研究显示,与电子芯片相比,光子计算芯片在延迟、计算容量和能效上都有数量级的提升,有望解决当前无人机系统的计算瓶颈。

YUNZHUO666的博客 1404

Python中的pdfkit入门

本文介绍了pdfkit的基本用法和一些常见的应用场景。你可以使用pdfkit将HTML转换为高质量的PDF文件,并使用丰富的配置选项来控制生成的PDF文件。无论你是个人开发者还是在商业环境中工作,pdfkit都是一个强大而易于使用的工具,帮助你处理各种PDF生成任务。希望本文能够帮助你入门pdfkit,并在你的项目中发挥作用。如有任何问题,请随时在评论区提问。下面是一个使用pdfkit的实际应用场景示例代码:将一篇Markdown格式的博客文章转换为PDF。# Markdown格式的博客文章。

牛肉胡辣汤 1434

利用 vivado实现加减法器的设计

本科计组实验:利用 vivado实现加减法器的设计

qq_52052302的博客 1万+

【阿里云大模型高级工程师ACP学习笔记】2.8 部署模型

【摘要】本文主要分享自学阿里云大模型高级工程师 ACP 认证中《2.8 部署模型》的学习笔记。详细介绍学习目标、梳理涵盖的知识点并评估其重要性和难易度,对既重要又困难的知识点进行重点分析,旨在为对阿里云大模型学习和认证感兴趣的读者提供学习思路和经验参考。

davidkorhenn的博客 2060

PDFKit - 创建美观的PDF文档从未如此简单

> 是一个用于生成 PDF 的 Node.js 库,它基于操作 DOM 和 SVG 来创建页面,并将其转换为 PDF 格式。 ## 什么是 PDFKit? PDFKit 是一个功能强大的库,可用于在 Node.js 中轻松生成 PDF 文档。通过提供简单的 API 和对操作 DOM 和 SVG 的支持,PDFKit 可以帮助您快速实现动态、美观的 PDF 输出。 ## PDFKit 能用来...

gitblog_00003的博客 1160

openEuler 22.03 安装 openGauss 5.0.2 部署手册

openEuler 22.03 安装 openGauss 5.0.2 部署手册

全国服务器高效代维 1421

PDFkit中文文档

PDFkit中文文档。

lmq1919的博客 845

MVSNet (pytorch版) 搭建环境 运行dtu数据集重建 实操教程(图文并茂、超详细)

MVSNet (pytorch版) 代码注释版 下载 (注释非常详细,代码结构有所调整,使用起来更方便) 深度学习三维重建 MVSNet-ECCV-2018 (源码、pytorch版、原文+注释、译文+批注)Meshlab查看三维点云时 ,使用技巧总结。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 2938

11、系统稳定性分析与李雅普诺夫函数的应用

本文深入探讨了李雅普诺夫函数在系统稳定性分析中的核心作用,重点介绍了时变与时不变系统的稳定性判据差异,以及巴尔巴拉特引理在处理非自治系统中的应用。文章还阐述了正线性系统与严格正实传递函数的性质及其在非线性控制系统中的重要性,并展示了李雅普诺夫函数在评估主导时间常数和设计快速干扰抑制控制策略方面的实际应用。通过具体示例和流程图,系统地总结了李雅普诺夫方法在稳定性分析、性能评估与控制器设计中的多维度价值,同时指出了当前挑战与未来发展方向。

Jerry的专栏 93

卧槽,一行代码就可将网页直接转pdf保存下来(pdfkit)

Python快速将网页保存成pdf

eternal的博客 3188

海思Hi3519A开发:DSP开发指南

通过创建DSP项目、实现算法、编译调试等步骤,开发者可以充分利用Hi3519A芯片集成的DSP,实现各种音视频处理功能。通过以上示例,我们可以看到在Hi3519A开发平台上进行DSP开发是一项强大而灵活的任务。在调试过程中,可以使用调试工具提供的功能,如断点设置、变量查看等,以便更好地理解和优化DSP算法的执行过程。在Hi3519A开发平台上,我们可以利用DSP的高性能计算能力来加速这些算法的执行。在实际的DSP开发中,算法的实现可能更加复杂,需要结合具体的项目需求进行。3.2 DSP算法实现。

QoTypescript的博客 1494

用Python处理PDF(一)-网页导出成PDF

1.chatgpt真是个好东西,上面过程中从下载软件,配置环境,到代码查错,全部都可以向其咨询,精准解决各种问题。2.两种处理方式from_url()和from_string()研究得不够清楚,另外对options中的参数也没有仔细吃透,等有时间再详细研究。3.对静态url页面的处理好于动态页面。以上是我在优快云上发表的第一篇文章,不为别的,只为记录第一次独立研究完成一个小工具,告别小白的第一步从chatgpt开始。

nccbpm的博客 2556

[QMT和ptrade量化交易小白入门]-109、小市值选股的基础上用六脉神剑评分,回测年化可到132%

本专栏主要是介绍QMT和ptrade的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1859

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

工作效率:通过pdfkit包实现网页导出为pdf

遇到禁止复制该怎么办?幸好我会Pytho,相信大家都有遇到这种情况(无法复制):或者是这种情况以上这种情况都是网页无法复制文本的情况。不过这些对于Python来说都不是问题。今天辰哥就叫你们用Python去解决。思路:利用pdfkit库将html网页保存为pdf。

GIS摆渡人 1171

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

python包-pdfkit(wkhtmltopdf) 将HTML转换为PDF

pdfkit,把HTML+CSS格式的文件转换成PDF格式文档的一种工具。它就是html转成pdf工具包wkhtmltopdf的Python封装。所以,必须手动安装wkhtmltopdf。

西京刀客 3844

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

使用pdfkit碰见的坑

因为pdfkit我使用的时候,是打印本网页,所以会把请求地址回传给后端,但是这个时候有个问题,这个服务器是通过端口映射给外网域名,通过外网域名再回到服务器上,所以在部署了域名访问后,请求的地址是域名。开始以为是远程用户访问,windows的权限问题,所以始终在文件读取和保存方面考虑,通过增加参数给权限都没有效果,麻烦的地方就是,看不见明细的提示。所有的测试都u没有问题,但是通过域名部署后,发现原来的pdfkit生成本地文件后,然后网页给用户提供下载链接,

szmdallen的博客 298

Python安装pdfkit库把html转PDF

是一个 Python 库,用于将 HTML+CSS 格式的文件转换为 PDF 文档。如果您使用的是其他操作系统(如 Linux 或 macOS),请相应地调整步骤。请注意,上述步骤是在 Windows 操作系统上安装。库来将 HTML+CSS 文件转换为 PDF 文档。以下是在 Windows 操作系统上安装。完成上述步骤后,您应该能够成功安装并使用。工具的封装,因此在安装。

得塔云的博客 1177

python 使用pdfkit生成

用python生成pdf,记录一下。 import pdfkit import json import requests import time import os from PyPDF2 import PdfFileReader, PdfFileWriter from reportlab.lib.units import cm from reportlab.pdfgen import canvas # 将wkhtmltopdf.exe程序绝对路径传入config对象 path_wkthmltopdf

Coder的博客 1974

【亲测免费】 PDFKit 使用教程

PDFKit 是一个基于 Python 的库,用于将 HTML 转换为 PDF 文件。它利用了 wkhtmltopdf 的 WebKit 渲染引擎和 Qt 库来实现这一功能。PDFKit 提供了简单易用的 API,使得从 URL、文件或字符串生成 PDF 变得非常方便。 ## 项目快速启动 以下是一个简单的示例,展示如何使用 PDFKit 从 URL 生成 PDF 文件。 ### 安装 PDF...

gitblog_00943的博客 935

15分钟搭建企业级自托管远程桌面:RustDesk Server完全部署指南

还在为TeamViewer、AnyDesk的商业许可费用烦恼?担心远程桌面服务的安全性和隐私问题?RustDesk Server提供了完美的解决方案——一个开源、免费且完全可自托管的远程桌面服务器。本文将带你从零开始,在15分钟内完成RustDesk Server的完整部署,打造属于你自己的企业级远程桌面基础设施。 RustDesk Server是一个基于Rust语言开发的高性能远程桌面服务器程

gitblog_00127的博客 486

【iOS】使用PDFKit框架实现PDF文件预览、涂鸦、文字、贴图等功能

开发语言:Objective-C 原生框架:PDFKit.framework 三方框架:Masonry demo工程在Gitee 一、预览PDF文件 使用PDFKit.framework框架中的类有:

colrying的博客 1085

Python工具-pdfkit

pdfkit,把HTML+CSS格式的文件转换成PDF格式文档的一种工具。

shenwanjiang111的专栏 9291

pdfkit 参数解析

前言 总是担心一些被看好的技术文章被删除,一直有想将数据抓取存下来自己想看就看,琢磨看了下抓取存取为pdf,也不做总结了,转载下。 python中将html转化为pdf的常用工具是Wkhtmltopdf工具包,在python环境下,pdfkit是这个工具包的封装类。如何使用pdfkit以及如何配置呢?分如下几个步骤。 1、下载wkhtmltopdf安装包,并且安装到电脑上,在系统Path变量中添加wkhtmltopdf的bin路径,以便于pdfkit的调用。 下载地址:https://wkhtmlto

木头人的博客 5259

pdfkit简单使用

任务:保存json格式数据到pdf表格 1. 背景 来源,小练手项目。 请求数据的前端接口为:/get/all/userinfo 采用的后端为flask,因为后端自定定义了对应的数据获取,这里就直接调用后端的接口:from db.users import UserDB UserDB().getAllUserInfo() 对应的数据库采用mongodb,删除其余的非相关部分,UserDB类如下: import pymongo import db.settings as setting class UserD

梦否 2303
上一篇: pip安装不是包名__一蓑烟雨任平生
下一篇: Python自学Django_踩坑日记_持续更新_一蓑烟雨任平生
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值