要服务器返回的原始html,用浏览器“查看页面源代码”后按ctrl+s(windows)或cmd+s(macos)保存,或用curl -o file.html url;二者均不执行js、不依赖渲染,适用于备份、分析与调试。

直接保存原始 HTML 源码,不用等渲染、不依赖 JS、不抓错内容——关键就看你是要 服务器返回的原始 HTML,还是 浏览器渲染后的 DOM。绝大多数备份、分析、调试场景,你真正需要的是前者,而它根本不需要写代码或装复杂工具。
用浏览器“查看页面源代码”+Ctrl+S 是最稳的单页保存法
这是获取真实服务器响应 HTML 的黄金路径,适用于所有标准网站,且零依赖、零配置。
- 必须在打开的「源代码」标签页里按
Ctrl+S(Windows)或Cmd+S(macOS),不能在原网页标签页点“另存为” - 保存时务必把“保存类型”设为
所有文件或明确选Web Page, HTML Only(Chrome/Edge),Firefox 则选Page Source - 常见错误:保存成
Web Archive(.mht)或Complete(带文件夹),那得到的是浏览器重写的、含 base64 图片和绝对路径的混合体,不是原始源码 - 该方法拿不到 JS 动态插入的内容(比如 React/Vue 渲染的区块),但恰恰因此,它才干净、可追溯、适合结构分析
curl 命令一行搞定,适合脚本批量抓取静态页
当你需要自动化下载多个 URL 的原始 HTML,curl 比浏览器更可靠,也比 wget 更轻量——它只管发请求、收响应,不递归、不重写路径。
- 基础用法:
curl -o example.html https://example.com,输出直接写入文件 - 加
-L支持 301/302 跳转:curl -L -o site.html https://site.com - 加
-H "User-Agent:..."可绕过部分反爬拦截,但别滥用;多数公开页面无需伪装 - 注意:
curl拿到的是未渲染 HTML,跟浏览器“查看源代码”结果一致;若页面严重依赖 JS 初始化,它会返回空容器(如<div id="app"></div>)
别用“另存为完整网页”来存源码
这个功能看似方便,实则混淆了“源码”和“离线快照”两个概念,容易导致后续误用。
- 它生成的
.html文件不是原始响应,而是浏览器解析后重排过的 DOM,可能被自动补全标签、注入注释、修正编码 - 同名文件夹里的资源路径是相对的,但 HTML 中的链接常被改成绝对路径,导致离线打开时样式/图片丢失
- 如果你真要离线浏览效果,应该用
Website-downloader这类专用工具做整站递归下载+路径重写,而不是靠浏览器“另存为” - 简单说:要源码,就用“查看源代码”+Ctrl+S 或
curl;要能点开就看效果的副本,再考虑整站工具
动态页面怎么办?先确认你是否真的需要渲染后 HTML
很多用户一上来就上 Selenium 或 requests-html,结果发现白忙活——因为压根没想清楚自己要什么。
- 检查目标页面:右键 → “查看页面源代码”,搜索关键文字。如果搜不到,说明内容由 JS 注入,这时才需要渲染方案
- 优先试
requests-html:session = HTMLSession(); r = session.get(url); r.html.render(timeout=20); print(r.html.html)——比 Selenium 轻,适合中低频需求 -
Selenium启动慢、依赖浏览器驱动,仅当页面有复杂交互(如登录、滚动加载、防爬验证)时才值得投入 - 记住:渲染后 HTML 是“快照”,不是源码。它不可用于审计服务端逻辑、复现请求链路,也不具备版本可比性
最容易被忽略的一点:同一网址,curl、浏览器“查看源代码”、开发者工具 Elements 面板里看到的 HTML,三者可能完全不同。不要默认它们等价——先 curl -I 看响应头,再比对内容编码和 Content-Type,才能确定你拿到的到底是什么。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











