用于创建网站屏幕截图的命令行程序(在Linux上)

时间:2020-03-06 14:38:54  来源:igfitidea点击:

在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)