命令行程序创建网站截图(在Linux上)

时间:2008-09-24 08:03:46

标签: linux screenshot

在Linux上创建网站截图的好命令行工具是什么?我需要在没有人工交互的情况下自动生成网站的屏幕截图。我找到的唯一工具是khtml2png,但我想知道是否有其他工具不是基于khtml(即有很好的JavaScript支持,......)。

10 个答案:

答案 0 :(得分:56)

更多细节可能有用......

在X会话中启动firefox(或其他浏览器),可以是在控制台上,也可以是使用vncserver。您可以使用--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

答案 1 :(得分:37)

尝试不错的小工具CutyCapt,它仅依赖于Qt和QtWebkit。 ;)

答案 2 :(得分:8)

查看PhantomJS,它似乎是一个在Linux,OSX和Windows上运行的免费scritable Webkit引擎。我没有使用它,因为我们目前使用Browshot(商业解决方案),但是当我们所有的信用都用尽时,我们会认真地抓住它(因为它是免费的并且可以在我们的服务器上运行)

答案 3 :(得分:5)

scrot是一个截取屏幕截图的命令行工具。请参阅man page和此tutorial

您可能还想查看浏览器的脚本。有一些firefox附加组件可以截取screengrab(可以捕获整个页面,如果你想要的话,而不仅仅是可见位)的屏幕截图,然后你可以使用greasemonkey编写浏览器脚本以截取屏幕截图

答案 4 :(得分:3)

请参阅Webkit2png

我认为这是我过去使用过的。

修改我发现我没有使用上述内容,但发现this page包含许多不同程序和技术的评论。

答案 5 :(得分:2)

我知道它不是一个命令行工具,但你可以轻松编写一些内容来使用http://browsershots.org/对于没有托管在外部IP上的应用程序来说没那么有用。

一个很棒的工具。

答案 6 :(得分:1)

我不知道有什么自定义构建的,我确信可以用gecko引擎做一些事情来渲染到png文件而不是屏幕......

或者,您可以在专用VNC服务器实例中以全屏模式启动firefox,并使用屏幕截图抓取器截取屏幕截图。全屏=最小化铬,VNC服务器实例=没有可见的UI +您可以选择您的分辨率。

使用xinit和Xvnc作为X服务器来执行此操作 - 您需要阅读所有联机帮助页。

缺点是屏幕截图总是大小相同,不会根据网页调整大小...

答案 7 :(得分:1)

导入命令,但您需要X和一个打开浏览器窗口的小bash脚本,然后截取屏幕截图并关闭浏览器。

您可以在shell中找到更多信息here,或者只需输入 import --help ;)

答案 8 :(得分:1)

http://khtml2png.sourceforge.net/

deb文件

安装libkonq4后,

在我的Ubuntu上工作......但你可能需要覆盖其他依赖项。

我认为javascript支持现在可能会更好!

斯蒂芬

答案 9 :(得分:1)

不适用于命令行,但至少在批处理操作中使用更大的网址集时,你可以使用firefox及其插件fireshot(许可版本?)。

  1. 打开您设置中所有网址的标签(例如“打开此文件夹中所有书签的标签页......”)。
  2. 然后在fireshot发布“捕获所有标签”
  3. 在编辑窗口中,然后调用“选择所有镜头 - &gt;保存所有镜头”
  4. 在您使用一组精美的镜头文件结束之前设置了屏幕截图属性(大小,文件格式等)。

    斯特芬