如何使用wget获取帧源?

如何使用wget获取帧源?

我正在尝试从 servicenow 网站获取 html 数据。它使用框架,我想使用 wget 提取框架源。我无法找到完成这项工作的选项/标志。我只能提取页面源,而不能提取框架源。

wget -q https://company.service-now.com/task.do?sysparm_query=number=TASK0299719

Chrome 浏览器右键单击网站的片段

答案1

框架是一个单独的页面,有自己的 URL,就像常规链接一样。通过使用框架,第一页的创建者表示应该立即检索第二页并将其显示在第一页中,而不是等待用户单击它并自行显示。

由于 wget 不显示任何内容,也没有交互式用户,因此框架和链接之间的区别是没有意义的。因此,您可以将此问题视为“我希望 wget 跟踪链接”的特例。

wget 具有递归模式 ( -r),在该模式下,它会跟踪原始 URL 中的链接并下载它们。您可能不想下载全部链接 URL 的数量,因此您需要缩小范围。

如果这是一次性操作,或者框架的 URL 稳定,您可以简单地自己读取原始页面源代码,找到 iframe 元素的 src 属性,然后要求 wget 获取该属性。

如果您需要 wget 为您完成更多工作,可以使用该--follow-tags选项要求它仅获取 iframe URL。

wget -r --follow-tags=iframe http://yourpage/

这将下载页面及其中包含的所有 iframe。如果 iframe 内有 iframe,它也会获取这些 iframe,除非您还指定了递归深度限制,例如-l 1.

相关内容