【问题标题】:How to download an HTML page with all dependencies?如何下载包含所有依赖项的 HTML 页面?
【发布时间】:2012-05-17 18:44:18
【问题描述】:

我正在做这个项目,我基本上需要能够在任何页面上放置一个 html 按钮(可以受登录保护),一旦用户点击该按钮,页面 html 和依赖项(css、js、图片等)应发送到远程服务器。

最初,我通过使用 iframe 和隐藏表单并在用户单击按钮时将页面的 url 发布到远程服务器来使其工作。然后我在 exec 中使用 wget 来获取页面和依赖项。但是,这显然不适用于受保护的页面。

所以我的下一个方法是通过表单将页面的 innerHTML 发送到远程服务器上的 php 脚本。然后我尝试使用 simplehtmldom 运行 , 和 tags ,将相对 url 转换为绝对 url ,将它们存储在数组中,并将 url 替换为同一目录中的路径。然后我在所有数组上应用 wget 并下载了这些依赖项。

但是,我又被卡住了,因为 CSS 中有背景图片,而 javascript 中有嵌入的 html 代码。

有人可以提出更好的解决方案吗?

谢谢

【问题讨论】:

  • 是什么阻止你解析 CSS 和 JS?
  • 我刚开始认为这不是一个好方法。我的意思是我还必须解析 CSS 和 js 文件中的 url,它们可能无法正确解析。
  • 如果网站是基于 AJAX 的,你的技术就会失败。
  • 不确定你的意思是什么?我只想在 dom 加载后捕获东西。
  • 你有远程服务器的shell访问权限吗?如果是这样,我建议让客户端向服务器发送一条消息以执行wget -p -k [thepage]。让服务器拉取内容,而不是让客户端推送。

标签: php javascript web download copy


【解决方案1】:

我不确定这是否会奏效。 事实是,除非您的网站确实非常简单(即只有很少的动态部分)并且存在于 click->load->static 范式上,这实际上不再是任何现代网站的工作方式,否则您总是会有一些缺少部分/依赖项。

如果它是一个超级简单的网站,您也许可以只发送 html,然后在副本的头部添加 <base> href?

如您所知,如今的网站更像是应用程序,您确实需要包含所有“活动部件”的整个网站

其他值得一看的东西:

  1. 使用PHP/.NET/Java/Ruby等的ftp函数触发 模板/css/img 目录到一个新位置。
  2. 也许可以查看 HTML 2 PDF/Canvas 工具,这些工具可以显示 网站当前状态的可视化表示 位置。

【讨论】:

  • 好吧,无论如何我可以解析内联 JS 和 CSS 以获得背景图片 url
  • 试试标签,这意味着你可以在另一个地方使用html上一个地方的所有资产
猜你喜欢
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 2015-06-28
  • 2012-11-25
  • 2016-06-26
  • 2011-05-23
  • 1970-01-01
  • 2014-06-08
相关资源
最近更新 更多