用于创建网站屏幕截图的命令行程序(在Linux上)
在Linux上创建网站截图的命令行工具是什么?我需要自动生成网站的屏幕截图,而无需人工干预。我发现的唯一工具是khtml2png,但我想知道是否还有其他基于khtml的工具(即具有良好的JavaScript支持...)。
解决方案
我知道它不是命令行工具,但是我们可以轻松编写脚本以使用http://browsershots.org/。对于非外部IP托管的应用程序,它没有什么用。
仍然是一个很棒的工具。
我不知道任何自定义构建的东西,我敢肯定,壁虎引擎可以完成一些工作,以呈现到png文件而不是屏幕上...
或者,我们可以在专用的VNC服务器实例中以全屏模式启动Firefox,并使用屏幕截图抓取工具来截取屏幕截图。全屏=最小限度的镶边,VNC服务器实例=无可见的UI +我们可以选择分辨率。
将xinit与Xvnc一起用作X服务器,我们需要阅读所有手册页。
缺点是屏幕截图始终是相同大小,不会根据网页大小调整...
有import命令,但是我们需要X和一个bash脚本来打开浏览器窗口,然后截取屏幕截图并关闭浏览器。
我们可以在此处找到更多信息,或者仅在shell中键入import --help;)
多一点细节可能会有用...
在控制台上或者使用vncserver在X会话中启动Firefox(或者其他浏览器)。我们可以使用--height和--width选项将窗口的大小设置为全屏。另一个firefox命令可用于设置在第一个firefox窗口中显示的URL。现在,我们可以使用以下命令之一来捕获屏幕图像,例如从Imagemagick软件包中使用" import"命令,或者使用gimp或者fbgrab或者xv。
#!/bin/sh # start a server with a specific DISPLAY vncserver :11 -geometry 1024x768 # start firefox in this vnc session firefox --display :11 # read URLs from a data file in a loop count=1 while read url do # send URL to the firefox session firefox --display :11 $url # take a picture after waiting a bit for the load to finish sleep 5 import -window root image$count.jpg count=`expr $count + 1` done < url_list.txt # clean up when done vncserver -kill :11
scrot是用于截取屏幕截图的命令行工具。请参见手册页和本教程。
我们可能还想看看编写浏览器脚本。有一些firefox添加组件可以截取屏幕截图之类的屏幕截图(如果需要,可以捕获整个页面,而不仅仅是可见位),然后,我们可以使用隔层脚本编写浏览器脚本以截取屏幕截图。
http://khtml2png.sourceforge.net/
deb文件
- http://sourceforge.net/projects/khtml2png/files/khtml2png2/2.7.6/khtml2png_2.7.6_i386.deb/download
在安装libkonq4之后,我在Ubuntu上工作了……但是我们可能必须涵盖其他依赖项。
我认为现在对javascript的支持可能会更好!
史蒂芬(Stephan)