66

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

4

10 回答 10

57

更多细节可能有用...

在 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
于 2008-09-27T06:52:37.593 回答
39

试试漂亮的小工具CutyCapt,它只依赖于 Qt 和 QtWebkit。;)

于 2012-07-12T19:30:13.190 回答
8

看看PhantomJS,它似乎是一个运行在 Linux、OSX 和 Windows 上的免费可编写 Webkit 引擎。自从我们目前使用Browshot (商业解决方案)以来,我没有使用它,但是当我们所有的积分用完时,我们将认真地拥有它(因为它是免费的并且可以在我们的服务器上运行)

于 2013-06-05T13:25:07.733 回答
5

scrot是一个用于截屏的命令行工具。请参阅手册页和本教程

您可能还想查看为浏览器编写脚本。有一些 Firefox 附加组件可以截取屏幕截图,例如screengrab(如果您愿意,它可以捕获整个页面,而不仅仅是可见部分),然后您可以使用greasemonkey编写浏览器脚本来截取屏幕截图。

于 2008-10-02T20:57:39.440 回答
3

请参阅Webkit2png

我想这是我过去使用的。

编辑我发现我没有使用上述内容,但发现此页面包含许多不同程序和技术的评论。

于 2013-03-27T19:15:21.533 回答
2

我知道它不是命令行工具,但您可以轻松编写脚本以使用http://browsershots.org/对于未托管在外部 IP 上的应用程序而言这不是很有用。

一个很棒的工具。

于 2008-09-24T08:19:46.017 回答
1

我不知道任何定制的东西,我敢肯定壁虎引擎可以做一些事情来渲染到 png 文件而不是屏幕......

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

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

缺点是截图总是一样的大小,不会根据网页调整大小...

于 2008-09-24T08:20:50.490 回答
1

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

你可以在这里找到更多信息,或者只是在 shell 中输入import --help ;)

于 2008-09-24T09:05:13.003 回答
1

http://khtml2png.sourceforge.net/

deb 文件

安装 libkonq4 后在我的 Ubuntu 上工作......但您可能必须涵盖其他依赖项。

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

斯蒂芬

于 2010-02-04T05:45:36.303 回答
1

不适用于命令行,但至少用于批量操作以获取更大的 URL 集,您可以使用 firefox 及其插件 fireshot(许可版本?)。

  1. 为您的集合中的所有 url 打开标签(例如“打开此文件夹中所有书签的标签...”)。
  2. 然后在fireshot启动“捕获所有标签”
  3. 然后在编辑窗口中调用“选择所有镜头->保存所有镜头”

在以一组漂亮的截图文件结束之前设置截图属性(大小、文件格式等)。

史蒂芬

于 2012-02-17T09:02:37.267 回答