Python3實現網頁內容轉換成PDF文檔和圖片

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自動安裝第三方庫,跟pip說再見》

《Python:一行代碼,導入Python所有庫》

敲黑板:

pdfkit 是基於 wkhtmltopdf 的封裝,所以需要先安裝 wkhtmltopdf 。

wkhtmltopdf官網

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

到此這篇關於Python3實現網頁內容轉換成PDF文檔和圖片的文章就介紹到這瞭,更多相關Python網頁內容轉PDF 圖片內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: