最可靠方法是用浏览器开发者工具提取运行后的DOM:打开网页→F12→Elements面板→右键→Copy outerHTML;需手动触发懒加载内容,view-source:协议可绕过右键禁用但可能受服务端限制。

加密的网页 HTML 源码无法直接“保存为网页”获得可读源码——因为浏览器渲染时执行的是 document.write(unescape(...)) 或 eval(unescape(...)) 这类动态还原逻辑,而“另存为”只保存当前 DOM 快照或原始混淆文本,不是解密后的结构化 HTML。
用浏览器开发者工具提取运行后的真实 HTML
这是最可靠、无需第三方工具的方法。加密网页在加载后,JavaScript 会把解密内容写入 DOM,此时源码已还原,只是没显示在“查看页面源代码”里。
- 打开加密网页 → 按
F12打开 DevTools → 切换到Elements面板 - 右键
根节点 → 选择Copy→Copy outerHTML - 粘贴到编辑器中,即可得到完整、未混淆、带格式的 HTML(含内联 JS/CSS)
- 注意:如果页面有懒加载或交互才触发的模块,需先手动触发(如滚动、点击),再复制对应节点
绕过 view-source: 被禁用的限制
很多加密页通过 oncontextmenu、onselectstart 或 document.addEventListener('keydown', ...) 拦截右键和快捷键,但 view-source: 协议本身未被禁用,只是入口被隐藏。
- 在地址栏直接输入:
view-source:https://example.com/encrypted-page.html(替换为实际 URL) - 若页面用了
location.replace()或跳转逻辑,可先在新标签页打开,再快速输入view-source:前缀 + 回车 - 部分网站会重定向或返回空页——此时说明服务端做了 UA 或 referrer 检查,应改用无痕模式或修改 UA 再试
处理 unescape + document.write 类加密
这类加密常见于老式 HTML 加密工具输出,核心是字符串经 escape() 编码后嵌入 JS,靠 unescape() 还原并 document.write() 注入。它不防 DevTools,但防直接查看源码。
立即学习“前端免费学习笔记(深入)”;
- 在 DevTools 的
Console中执行:console.log(unescape("你的加密字符串")),可预览解密结果 - 若字符串太长或含多层嵌套(如
unescape(unescape(...))),可先用正则提取所有unescape("...")片段,逐层解码 - 不要直接复制整个
<script></script>块去外部解密——某些加密会插入干扰字符(如零宽空格\u200b),导致语法错误;应先在 Console 中eval看是否报错
保存时避开“Files”文件夹陷阱
用 IE/Edge 的“另存为 → Web 页,全部”看似能拿到资源,但对加密页无效:生成的 .html 文件仍是混淆态,Files 文件夹里只有图片/CSS 等静态资源,没有解密逻辑。
- 真正要保存的是运行时 DOM,不是磁盘上那个 HTML 文件
- 若需保留 JS/CSS 外链关系,可在
Network面板中筛选JS、CSS、XHR,逐一右键Save as下载原始资源 - 注意:有些加密页会动态拼接脚本路径(如
src="a"+".js"),这种需在Console中手动拼出真实 URL 再下载
关键点在于:所有前端加密都依赖浏览器最终执行解密逻辑,所以真实 HTML 一定存在于内存 DOM 中。别纠结“怎么解密字符串”,先确认它是否已被执行——只要页面能正常显示,就说明解密已完成,剩下的只是提取技巧。最容易被忽略的是懒加载内容和动态插入的 <script></script>,它们不会出现在初始 DOM 里,得等对应事件触发后再抓取。



















