HTML转其他格式需工具链处理:Chrome命令行导出PDF最稳定;html2text适合提取纯文本但丢结构;pandoc转Markdown/DOCX更可控,需配合sed修复和参考文档;转换本质是权衡舍弃内容。
直接用浏览器打开 .html 文件本身就是在“渲染”它,不是转换;真要转成其他格式(比如 PDF、Markdown、纯文本),得靠工具链或代码处理,没有一键通用方案。
chrome 命令行导出 PDF 最稳定本地 HTML 转 PDF,最靠谱的是调用已安装的 Chrome/Edge 浏览器,
不依赖第三方库,排版还原度高。
chrome 或 chromium(macOS 可用 google-chrome,Windows 常为 "C:\Program Files\Google\Chrome\Application\chrome.exe")--headless 和 --disable-gpu,否则会报错或卡住chrome --headless --disable-gpu --print-to-pdf="/tmp/output.pdf" file:///path/to/doc.html
html2text 提取纯文本易丢结构,但适合日志/摘要场景如果你只需要文字内容(比如把网页新闻转成可搜索的 txt),html2text 是轻量选择,但它会忽略所有样式、表格对齐、图片 alt 文本以外的信息。
pip install html2text 后,ignore_links=True 可去掉 URL 干扰body_width=0 关闭自动折行import html2text
h = html2text.HTML2Text()
h.ignore_links = True
h.body_width = 0
with open("input.html") as f:
print(h.handle(f.read()))
sed + pandoc 组合,别信在线转换器很多在线工具把 立即学习“前端免费学习笔记(深入)”; 有人试过用 HTML 转换的本质是「舍弃什么」而不是「保留什么」——PDF 丢交互、Markdown 丢样式、DOCX 丢 JS 行为。选工具前先想清楚:你到底需要下游软件能做什么,而不是文件后缀看起来像什么。 直接扔掉,或把嵌套列表转成乱码。真正可控的方式是先用 pandoc 做主干转换,再用 sed 修常见坑。
pandoc input.html -o output.md 会保留标题层级、链接、基础列表,但可能把 当段落、把内联 style="color:red" 全删光sed -i 's/\\n//g'(Linux/macOS)或 gsed(macOS 需 brew install gnu-sed)清理 Pandoc 插入的多余换行pandoc 默认不识别,得加 --mathml 或改用 --webtex
别用 Python
BeautifulSoup 直接转 Word —— python-docx 不支持 HTML 解析BeautifulSoup 抓标签再塞进 Document().add_paragraph(),结果表格错位、样式全无、中文换行异常。根本问题是 python-docx 是生成 Word 的底层 API,不是 HTML 渲染引擎。
pandoc input.html -o output.docx,能映射 CSS 类到 Word 样式(需提前写好 reference.docx)tidy -asxhtml 修复烂结构,否则 Pandoc 会解析失败