服务器生成的网页截图?

时间:2008-09-23 04:22:51

标签: web-services

我一直在玩弄的一个问题是需要我的服务器在给定网址上生成网页截图的服务。问题是我不知道如何实现这一目标。我主要使用LAMP软件堆栈,所以考虑到这些答案是最有帮助的。同样基本的要求是:给定一个URL,服务器需要在该URL处生成呈现的网页的图像文件。提前谢谢!

8 个答案:

答案 0 :(得分:6)

您可能还想看一下webkit,它更容易嵌入(Adobe用于AIR,Google用于Chrome,Apple用于iPhone ......)以及其他渲染引擎。这可能需要更多的工作来设置,但它会比启动webbrowser并截取屏幕截图的一些黑客更加稳定。

答案 1 :(得分:6)

IF 您的服务器是 Mac ,然后我推荐webkit2png,这是一个利用WebKit的Objective-C API呈现网址的简短python程序。就个人而言,我将它与WWW::Mechanize结合使用来浏览我的开发网站并制作每个页面的屏幕截图 - 这对于测试功能,显示客户端和保持屏幕截图是最新的非常有用。生成的屏幕截图非常完美,但有时对于长而滚动的页面来说非常高。

IF 您的服务器安装了KDE的非基本 Linux 发行版,然后您可以尝试khtml2png。我自己没有尝试过,但是在webkit2png页面上看到了它。

答案 2 :(得分:3)

PhantomJS是一个基于WebKit的无头(命令行)浏览器,可以轻松scripted保存网页截图。

答案 3 :(得分:2)

您实际上需要让服务器启动相关的Web浏览器,并使用相应的库获取应用程序的屏幕截图。 Apache不会为您呈现页面,因此您必须拥有可以使用的软件。

答案 4 :(得分:2)

是的,这就是我们所需要的。我在asp.net中这样做,实际上我在.Net框架类库中创建了一个Web浏览器对象来生成屏幕截图。

答案 5 :(得分:2)

我使用http://webthumb.bluga.net服务生成缩略图。功能强大,功能强大,易于使用且价格合理。我有一个使用此服务的高流量生产网站,它运作良好。鉴于创建一个强大的网页截图服务很困难,让其他人做出艰苦的工作真是太好了。

答案 6 :(得分:0)

Java的非免费解决方案是WebRenderer。有趣的功能:它可以在渲染时模拟Safari,IE或Firefox浏览器。他们有桌面版和无头服务器版。他们还有示例代码,演示如何呈现网页的屏幕截图图像。

答案 7 :(得分:0)

  

虚拟帧缓冲X服务器

我宁愿推荐XVFB(虚拟帧缓冲X服务器)是获取无头服务器截图的最佳解决方案。虚拟帧缓冲X服务器xvfb提供了一个X服务器,可以在没有显示硬件且没有物理输入设备的机器上运行。 我在我的服务器上使用它来测试URL并获取其截图。我们正在使用Ubuntu& XVFB + FIREFOX。它工作正常。根据您的需要进行修改。看看这些文章。它可能会对你充分使用。

http://www.semicomplete.com/blog/geekery/xvfb-firefox.html

http://linux.about.com/cs/linux101/g/xvfb.htm

http://www.xfree86.org/4.0.1/Xvfb.1.html