1、方法1 pdfkit
安裝依賴
# 安裝 wkhtmltopdf(系統級)
# Ubuntu/Debian
sudo apt install wkhtmltopdf# macOS
brew install wkhtmltopdf# Windows 下載安裝:https://wkhtmltopdf.org/downloads.html# 安裝 Python 庫
pip install pdfkit
import pdfkit# 將網頁轉為 PDF
def url_to_pdf(url, output_path):try:pdfkit.from_url(url, output_path)print(f"PDF 已保存為: {output_path}")except Exception as e:print(f"轉換失敗: {e}")# 示例調用(替換為你的鏈接)
url_to_pdf("https://etcnew.sdut.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=15400633&resid=1451996&lid=65791&preview=preview","水泥工藝學-第五章硅酸鹽水泥熟料的煅燒.pdf"
)
方法2:pyppeteer (很高級)適用于JavaScript渲染的網頁(如Vue、React頁面)。
import asyncio
from pyppeteer import launchasync def html_to_pdf(url, output_path):browser = await launch(headless=True)page = await browser.newPage()await page.goto(url, {'waitUntil': 'networkidle2'})await page.pdf({'path': output_path, 'format': 'A4', 'printBackground': True})await browser.close()# 使用示例
asyncio.run(html_to_pdf("https://example.com", "output.pdf"))
方法3:playwright (最高級,最穩定版本)
# 更新 pip
python3 -m pip install -U pip# 安裝 Playwright Python 庫
pip install playwright# 下載并安裝所需的瀏覽器(Chromium、Firefox、WebKit)
playwright installplaywright --version
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=True)page = browser.new_page()page.goto("https://example.com")page.pdf(path="page.pdf", format="A4")browser.close()