有没有办法可以转储网页源代码而无需直接与浏览器交互?

有没有办法可以转储网页源代码而无需直接与浏览器交互?

有没有办法可以自动转储网页源代码,而无需与浏览器本身交互;无需右键单击页面并选择“查看源代码”。例如,我打开了 Internet Explorer 并显示某些内容。我想获取该页面的 HTML 源代码,保存在一个我可以读取的文件中。也许有一个选项可以将当前页面源代码保存在磁盘上的某个位置?

几点:

  1. 我正在运行的网页是一个以信息亭模式打开的本地网络服务(没有菜单或地址栏)。
  2. 由于此服务需要身份验证,因此我无法直接打开并访问该页面。我需要经过一定的程序才能到达此页面。
  3. 我想得到現在實際頁面因为我经常对其进行更改(填写值、选择组合框值等)。我希望这些更改反映在源中,如果我在新窗口中运行同一页面,则其中不会有我编辑的字段。

类似的解决方案对我没有帮助,因为我首先不想通过它来运行浏览器。

答案1

我知道你使用的是 Windows,但在 Linux/Mac OS X 世界中,可以使用curl或者wget如果您知道页面的目标 URL 并希望将其保存到文件中。我看到有一个 Windows 版本的curl 可在此处获得以及其他版本在官方curl网站上那么,如果您熟悉命令行,那么这对您有用吗?

例如,curl您可以使用命令行保存主 Google 索引页的内容,如下所示:

curl -L google.com > google_index.html

curl命令很明显,该-L命令指示curl简单地解决访问 URL 时可能遇到的任何重定向。 是google.com目标 URL,>指示命令将 的输出重定向curl -L google.com到名为 的文件google_index.html

运行该命令后,其内容google_index.html将 100% 与您在 Web 浏览器中查看源代码时看到的内容一样。

但请记住:curl此类命令所做的只是获取 URL 返回的原始内容。它不会为您提供任何与该 HTML 相关的图形、CSS、JavaScript 或任何其他辅助内容。

对于更复杂和精密的获取完整网站内容来说,wget这是可行的方法。似乎有一个Windows 版本wget托管于此处,但不确定与 GNU 核心版本相比它是否过时wget。因此请自行承担风险。

答案2

从 Powershell 3.0 开始,你可以使用Invoke-WebRequest

调用 Web 请求

从互联网上的网页获取内容。

详细说明

Invoke-WebRequest cmdlet 向网页或 Web 服务发送 HTTP、HTTPS、FTP 和 FILE 请求。它会解析响应并返回表单、链接、图像和其他重要 HTML 元素的集合。

此 cmdlet 是在 Windows PowerShell 3.0 中引入的。

powershell 别名Invoke-WebRequest实际上是wget

答案3

我猜你是想闯入一个售货亭,哈哈?

玩笑归玩笑,您需要在客户端机器上安装 Fiddler。如果使用 HTTPS 就更难了,必须信任 Fiddler 证书。使用 Fiddler 时,您可能会遇到不受信任的证书,它会劫持连接并监听所有 http 流量,解码并流回浏览器。实际上,它几乎是一个代理,用于 Web 开发/调试。

这个问题不应该属于超级用户,它与 Web 开发有关。

相关内容