學委之前寫過一篇把熱榜儲存為html檔案的,這次利用上次寫的部分代碼繼續拓展:生成pdf檔案。
我們需要的就是這個軟體: wkhtmltopdf
它做的事就一件很專注:網頁html生成 pdf (或者圖檔)

第一步,下載下傳安裝
打開官網:
https://wkhtmltopdf.org/下載下傳蘋果電腦的pkg檔案。
學委用的是蘋果電腦,下載下傳的是下面這個軟體。
點選下一步一步的,預設設定就好。
第二步,驗證一下,把百度生成pdf
打開任意一個終端,運作下面的腳本。
#這裡雷學委直接把百度首頁保持為pdf
wkhtmltopdf https://baidu.com baidu.pdf
#保持内容為圖檔
wkhtmltoimage https://baidu.com baidu.png
如下圖所示, wkhtmltopdf 這個軟體不止生成pdf檔案,還能生存圖檔。
随便找個文章連結就能儲存為pdf
比如把學委的文章儲存為pdf
wkhtmltopdf https://blog.csdn.net/geeklevin/article/details/120073157\?spm\=1001.2014.3001.5501 leixuewei.01.pdf
儲存的pdf檔案如下:
這個軟體就是直接把整個網頁變成pdf,原樣儲存。
第三步,進階定制。用python來定制生成pdf
這裡把前面文章
❤️爬蟲截熱榜長屏不友善閱讀!推薦dominate直接生成報告❤️把裡面的report.py 複制一下。
1 先安裝下面的依賴
pdfkit
dominate
2 編寫下面的代碼定制網頁來實作pdf定制
然後編寫下面的代碼,調用report.py 生成表格頁面,儲存為html
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/9/4 8:38 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : pdf_demo.py
# @Project : pydocs
import pdfkit
import report
# PDF中包含的文字
lxw_tuples = []
lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11143102.html?spm=1001.2014.3001.5482","雷學委趣味程式設計故事彙編"))
lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11235756.html","程式設計新手指南"))
lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_10980215.html","Python從入門到精通"))
lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11159040.html","學會Python等于擁有整個世界!"))
lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11253201.html","沉住氣學習爬蟲"))
lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11099259.html","架構運維"))
lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_10461966.html","雷學委之NodeJS愛好系列"))
lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_10532880.html","雷學委的DevOps一條龍"))
lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_11291617.html","LINUX程式員都要懂"))
lxw_tuples.append(("https://blog.csdn.net/geeklevin/category_10725914.html","[小白向Linux基操]"))
# 調用之前熱榜儲存為html文章的generate_html,根據專欄資料生成html頁面代碼
#https://blog.csdn.net/geeklevin/article/details/119657231?spm=1001.2014.3001.5501 内實作的report.py腳本的generate_html函數
html = report.generate_html(lxw_tuples)
# 這裡雷學委把html源代碼轉換為PDF
pdfkit.from_string(html, './leixuewei_zhuanlan.pdf')
效果如下:
延伸
多數情況下,我們可以使用wkhtmltopdf來直接把連結直接儲存為pdf檔案。
pdf進階定制參考上面的代碼。從上面的代碼,我們可以看出,pdfkit可以根據任意的html代碼來生成pdf。