【问题标题】:Web Page Rendering Capture网页渲染捕捉
【发布时间】:2010-04-19 18:58:33
【问题描述】:

我首先描述问题本身。而不是一个问题,我正在寻找一个更好的解决方案。我有一个 asp.net 页面,里面有一堆图片和一个链接,每张图片实际上都是它下面的链接的最新呈现。

我安排了一个 bat 脚本,该脚本每小时运行一次,以通过 IECapt 网页渲染捕获实用程序获取图像。对这个实用程序感到恼火的一点是,我拥有的 20 张图片需要花费大量时间,而且因为缺少 Flash 内容而无法获取网站的实际屏幕截图。

现在我想知道这种渲染是否可以通过对使用任何实用程序不感兴趣的传统编程来完成。我有兴趣尝试这个。该解决方案不一定是基于 C# 的,我可以尝试使用任何其他语言。因为它给了我一个学习的机会。

谢谢。

【问题讨论】:

  • 您是否打算从头开始构建一个支持 Flash 的无头网络浏览器?
  • 在某种程度上是的,但不是那么大,满足我的先决条件。顺便说一句,谢谢你告诉我代表我的场景的确切词。 :-)
  • 不,不是从头开始。我认为他正在寻找一种方法来做到这一点,而无需重新发明轮子。
  • 看来你还没有给乔治赏金。

标签: image rendering


【解决方案1】:

你应该看看 moz-headless-screenshot

您应该能够嵌入您需要的功能。

http://blog.mozilla.com/ted/2010/07/29/moz-headless-screenshot/

他还提供了一个名为 moz-headless-screenshot 的示例嵌入客户端应用程序。 这是一个简单的命令行工具,它接受 URL、图像大小和输出文件名 并生成网页的PNG截图。

【讨论】:

【解决方案2】:

您应该查看浏览器截图:

http://browsershots.org/

他们为许多不同的浏览器做你想做的事。它甚至是开源的。

【讨论】:

    【解决方案3】:

    对于您要求做的事情,没有简单而简单的解决方案。这是因为渲染 HTML、CSS 和 Flash 实际上是一个非常复杂的过程。

    如果您准备进行大量编码,则可以使用 Gecko 引擎(为 firefox 提供支持)或其他开源网络浏览器核心(即 Dillo)将页面呈现到自定义画布上。然后将该画布保存到文件中。除非您实现对浏览器插件的支持,否则您不会以这种方式获得 Flash。您可以尝试使用 Gnash 之类的。祝你好运。

    我不知道有哪个开源项目已经这样做了。不过,它会很整洁:-)。如果你写了一些东西,请把它推给世界;拥有一个“获取此 URL 的屏幕截图”工具真的很酷。

    【讨论】:

      【解决方案4】:

      一种方法是使用 IRobotSoft 网络爬虫。您可以设计一个机器人每小时访问一次 URL,并通过 CapturePage(imagefile) 函数将整个网页捕获为图像。

      我不确定它是否会比 IECapt 更好。

      【讨论】:

        【解决方案5】:

        我们已经非常成功地使用 ACA WebThumb ActiveX Control (http://www.acasystems.com/en/web-thumb-activex/) 在 Web 服务器中捕获部分或整个网页,然后将它们写入文件,只需传入 url。它的运行速度足以满足我们的需要。

        我不熟悉 IECapt,但这可能是您可能想看看的东西。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-12-28
          • 1970-01-01
          • 1970-01-01
          • 2011-11-28
          • 2014-12-20
          • 2015-10-04
          • 1970-01-01
          相关资源
          最近更新 更多