Python3實(shí)現(xiàn)網(wǎng)頁內(nèi)容轉(zhuǎn)換成PDF文檔和圖片
1、引言
小魚:小屌絲,你這是干啥呢?
小屌絲:我的女神想要這個(gè)網(wǎng)頁的內(nèi)容。
小魚:那你也不能這一點(diǎn)點(diǎn)的復(fù)制粘貼啊,
小屌絲:為了我的女神,再辛苦我都愿意…
小魚:咱能不能man一點(diǎn),你直接把網(wǎng)頁內(nèi)容爬下來不就完事了,
小屌絲:我的女神還要把這些內(nèi)容轉(zhuǎn)換成PDF,
小魚:你的女神事可真多…
小屌絲:魚哥,你有什么好的法子嗎?
小魚:嗯,辦法嘛,確實(shí)有
小屌絲:我懂。
小魚:…上道這么快,果然為了你的女神,你什么都舍得,我也不磨嘰了,直接上教程。
2、代碼實(shí)戰(zhàn)
關(guān)于網(wǎng)頁的內(nèi)容轉(zhuǎn)換成PDF,通常思路:
- 爬取網(wǎng)頁內(nèi)容
- 保存到本地
- 轉(zhuǎn)換成PDF文檔
這種方法, 確實(shí)可以實(shí)現(xiàn),但是,很麻煩,需要轉(zhuǎn)兩次。
而今天,小魚給大家分享的方法,就3行代碼,一次搞定。
2.1 模塊介紹
2.1.1 pdfkit
pdfkit 是把 HTML+CSS 格式的文件轉(zhuǎn)換成 PDF 的一種工具,它是 wkhtmltopdf 這個(gè)工具包的 python 封裝。
2.2 安裝
pip install pdfkit
其它安裝方式,直接看這兩篇:
《Python3自動(dòng)安裝第三方庫,跟pip說再見》
《Python:一行代碼,導(dǎo)入Python所有庫》
敲黑板:
pdfkit 是基于 wkhtmltopdf 的封裝,所以需要先安裝 wkhtmltopdf 。
2.3 代碼實(shí)例
2.3.1 URL 對(duì)應(yīng)網(wǎng)頁轉(zhuǎn) PDF
代碼示例:
# -*- coding:utf-8 -*- # @Time : 2022-06-12 # @Author : carl_DJ import pdfkit 'URL 對(duì)應(yīng)網(wǎng)頁轉(zhuǎn) PDF' #wkhtmltopdf.exe 為本地安裝的路徑 config = pdfkit.configuration(wkhtmltopdf=r"D:\ProgramFiles\wkhtmltopdf\bin\wkhtmltopdf.exe") #調(diào)用pdfkit.from_url參數(shù),轉(zhuǎn)換PDF pdfkit.from_url(r'https://blog.csdn.net/wuyoudeyuer?type=blog', 'Carl_奕然.pdf', configuration=config)
運(yùn)行結(jié)果:
2.3.2 HTML 文件轉(zhuǎn) PDF
代碼示例:
# -*- coding:utf-8 -*- # @Time : 2022-06-12 # @Author : carl_DJ import pdfkit 'HTML 文件轉(zhuǎn) PDF' config = pdfkit.configuration(wkhtmltopdf=r"D:\ProgramFiles\wkhtmltopdf\bin\wkhtmltopdf.exe") #調(diào)用pdfkit.from_file參數(shù),轉(zhuǎn)換PDF pdfkit.from_file(r'D:\Carl_奕然的博客.html, 'Carl_奕然.pdf', configuration=config)
敲黑板
讀取html,需要調(diào)用pdfkit.from_file 參數(shù)。
2.3.3 字符串轉(zhuǎn) PDF
代碼示例:
# -*- coding:utf-8 -*- # @Time : 2022-06-12 # @Author : carl_DJ import pdfkit '字符串轉(zhuǎn) PDF' config = pdfkit.configuration(wkhtmltopdf=r"D:\ProgramFiles\wkhtmltopdf\bin\wkhtmltopdf.exe") #調(diào)用pdfkit.from_file參數(shù),轉(zhuǎn)換PDF pdfkit.from_string(r'Ilike wangxinling, 'Carl_奕然.pdf', configuration=config)
運(yùn)行結(jié)果
2.4 拓展
小屌絲:魚哥,如果我不想寫代碼,能不能一鍵轉(zhuǎn)換成PDF呢?
小魚:嗯,這個(gè)可以實(shí)現(xiàn),但是不能一鍵,必須一行代碼。
小屌絲:也行,能少些一行是一行。
2.4.1 網(wǎng)頁轉(zhuǎn)換PDF
開篇小魚也說過:pdfkit 是基于 wkhtmltopdf 的封裝,所以功能肯定也是基于 wkhtmltopdf 的。
于是乎,我們就能先到,直接用wkhtmltopdf 的功能,看看能否實(shí)現(xiàn)PDF轉(zhuǎn)換。
代碼示例
第一步、找到wkhtmltopdf的安裝路徑,以小魚的為例:
D:\ProgramFiles\wkhtmltopdf\bin\wkhtmltopdf.exe
第二步、powershell打開,輸入命令
.\wkhtmltopdf.exe https://blog.csdn.net/wuyoudeyuer/category_9471191.html D:\carl.pdf
運(yùn)行結(jié)果
解析
- .\wkhtmltopdf.exe :調(diào)用wkhtmltopdf.exe
- https://blog.csdn.net/wuyoudeyuer?type=blog:url地址
- D:\carl.pdf:保存的路徑
2.4.2 網(wǎng)頁轉(zhuǎn)換圖片
代碼示例
我們來試一下網(wǎng)頁轉(zhuǎn)換成圖片,
同樣,
第一步、打開powershell,進(jìn)入到bin文件夾下
第二步、輸入命令:.\wkhtmltoimage.exe https://blog.csdn.net/wuyoudeyuer/category_9471191.html D:\carl.png
運(yùn)行結(jié)果
3、總結(jié)
今天的分享,就到這里了。
是不是奇奇怪怪的姿勢(shì),又增加了呢。
我們總結(jié)一下今天的內(nèi)容:
pdfkit 可以可以實(shí)現(xiàn)的轉(zhuǎn)換:
- URL 對(duì)應(yīng)網(wǎng)頁轉(zhuǎn) PDF
- html文件轉(zhuǎn) PDF
- 字符串轉(zhuǎn) PDF
wkhtmltopdf.exe可以實(shí)現(xiàn)的轉(zhuǎn)換:
- 網(wǎng)頁轉(zhuǎn)圖片
- 網(wǎng)頁轉(zhuǎn) PDF
到此這篇關(guān)于Python3實(shí)現(xiàn)網(wǎng)頁內(nèi)容轉(zhuǎn)換成PDF文檔和圖片的文章就介紹到這了,更多相關(guān)Python網(wǎng)頁內(nèi)容轉(zhuǎn)PDF 圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用python-Jenkins批量創(chuàng)建及修改jobs操作
這篇文章主要介紹了使用python-Jenkins批量創(chuàng)建及修改jobs操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05python 如何用terminal輸入?yún)?shù)
這篇文章主要介紹了python 如何用terminal輸入?yún)?shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05python實(shí)現(xiàn)好看的時(shí)鐘效果
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)好看的時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Python實(shí)現(xiàn)判斷變量是否是函數(shù)方式
這篇文章主要介紹了Python實(shí)現(xiàn)判斷變量是否是函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02python中對(duì)開區(qū)間和閉區(qū)間的理解
這篇文章主要介紹了python中對(duì)開區(qū)間和閉區(qū)間的理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07