Python 渲染 HTML 到图片
参考:https://zhuanlan.zhihu.com/p/30645747569
使用 Playwright 库
配置依赖
pip install playwright #安装 Playwright 库
python -m playwright install #安装 Playwright 所需的浏览器二进制文件代码实现
from playwright.sync_api import sync_playwright
from PIL import Image
import os
import time
# 目标URL
url = os.path.join(os.path.dirname(__file__), 'xxx.html')
output_dir = os.path.dirname(url)
os.makedirs(output_dir, exist_ok=True)
screenshot_path = os.path.join(output_dir, "screenshot.png")
final_output_path = os.path.join(output_dir, "output_600dpi.png")
t1 = time.time()
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
context = browser.new_context(
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
)
page = context.new_page()
page.goto(url)
scroll_width = page.evaluate("document.body.scrollWidth")
scroll_height = page.evaluate("document.body.scrollHeight")
page.set_viewport_size({"width": scroll_width, "height": scroll_height})
page.screenshot(path=screenshot_path, full_page=True)
context.close()
browser.close()
image = Image.open(screenshot_path)
image.info['dpi'] = (600, 600)
image.save(final_output_path, dpi=(600, 600))
os.remove(screenshot_path)
print(f"图片已保存到:{final_output_path}")
print(f"耗时:{time.time() - t1:.4}s")
评论
其他文章