最可靠方法是ctrl+u打开源代码页后ctrl+s保存;必须在源代码标签页操作,否则保存的是渲染后dom而非原始html;curl命令可绕过浏览器直接获取服务器响应体,确保未压缩、未修改、未经js注入。

要保存未压缩格式的网页 HTML 源码,关键在于获取服务器返回的原始响应体,而非浏览器渲染后或自动格式化过的 DOM 结构——直接用 Ctrl+U 后 Ctrl+S 是最简、最可靠的方式,但必须在「源代码标签页」里操作,否则会存错。
用 Ctrl+U 打开的源代码页直接保存
这是获取未压缩、未修改、未经 JS 注入的原始 HTML 的首选方法。浏览器对这个页面不做任何 DOM 重排或格式美化,内容就是 response.body 的原始字节流(经 UTF-8 解码后显示)。
- 打开目标网页,按
Ctrl+U(Windows/Linux)或Cmd+Option+U(macOS),新标签页即为纯源码视图 - 在这个新标签页里按
Ctrl+S(不要在原网页标签页按!),弹出保存对话框 - 文件名末尾手动加
.html,保存类型选「所有文件」或「Web Page, HTML Only」(Chrome/Edge)、「Page Source」(Firefox) - 编码默认就是 UTF-8,无需额外调整;若编辑器提示乱码,说明你之前没在源码页保存,而是复制粘贴错了地方
用 curl 抓取原始 HTTP 响应体
当网站屏蔽 F12 或禁用右键时,curl 能绕过前端限制,拿到服务端吐出的最原始 HTML,且不执行 JS、不解析 <script></script>,天然未压缩。
- 命令行执行:
curl -o page.html https://example.com,生成的就是原始响应体 - 如需保留请求头(比如带 Cookie 或 User-Agent),加
-H "User-Agent:..."或用--cookie - 注意:如果页面依赖登录态,
curl默认无会话,得先用浏览器导出 Cookie,再传给curl --cookie "a=b;c=d" - 响应中若有 Gzip 压缩,
curl默认自动解压,你拿到的仍是可读的未压缩 HTML 文本
别用 Elements 面板里的 Copy outerHTML
这个操作复制的是当前渲染完成后的 DOM 树,已受 JS 修改、框架(React/Vue)hydrate、Shadow DOM 隔离等影响,不是原始源码——哪怕看起来“没变”,也极可能被自动补全了 <tbody>、修正了自闭合标签、删掉了注释、甚至插入了调试用的 <code>data-reactroot 属性。
-
Copy outerHTML适合保存「此刻可见的结构快照」,不适合归档或审计原始实现 - 它还会把动态插入的内联样式、临时 class、
style="display:none"等一并带上,和服务器发出来的 HTML 不一致 - 如果你发现保存后双击打开,CSS 不生效或脚本报错,大概率是因为路径被转成绝对地址、或引用了未下载的外部资源——这恰恰说明你存的不是原始源码
为什么「另存为 → 网页, 全部」不行
这个功能生成的是一个 HTML 文件 + 一个同名文件夹,浏览器会把 CSS/JS/图片等资源重写路径、改名、甚至 base64 内联,HTML 主体也会被自动添加注释、补全标签、转义特殊字符——它不是源码备份,而是「离线打包包」。
- 你打开那个
.html文件,看到的可能是带大量<!-- saved from url=... -->注释的版本 - 原始缩进、空行、条件注释(
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











