在 Linux 上创建网站截图的好命令行工具是什么?我需要在没有人工交互的情况下自动生成网站截图。我发现的唯一工具是khtml2png,但我想知道是否还有其他不基于 khtml 的工具(即具有良好的 JavaScript 支持,...)。
10 回答
更多细节可能有用...
在 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
试试漂亮的小工具CutyCapt,它只依赖于 Qt 和 QtWebkit。;)
看看PhantomJS,它似乎是一个运行在 Linux、OSX 和 Windows 上的免费可编写 Webkit 引擎。自从我们目前使用Browshot (商业解决方案)以来,我没有使用它,但是当我们所有的积分用完时,我们将认真地拥有它(因为它是免费的并且可以在我们的服务器上运行)
scrot是一个用于截屏的命令行工具。请参阅手册页和本教程。
您可能还想查看为浏览器编写脚本。有一些 Firefox 附加组件可以截取屏幕截图,例如screengrab(如果您愿意,它可以捕获整个页面,而不仅仅是可见部分),然后您可以使用greasemonkey编写浏览器脚本来截取屏幕截图。
我知道它不是命令行工具,但您可以轻松编写脚本以使用http://browsershots.org/对于未托管在外部 IP 上的应用程序而言这不是很有用。
一个很棒的工具。
我不知道任何定制的东西,我敢肯定壁虎引擎可以做一些事情来渲染到 png 文件而不是屏幕......
或者,您可以在专用 VNC 服务器实例中以全屏模式启动 firefox,并使用屏幕截图抓取器截取屏幕截图。全屏 = 最小的 chrome,VNC 服务器实例 = 没有可见的 UI + 你可以选择你的分辨率。
使用 xinit 和 Xvnc 作为 X 服务器来执行此操作 - 您需要阅读所有手册页。
缺点是截图总是一样的大小,不会根据网页调整大小...
有导入命令,但您需要 X 和一个打开浏览器窗口的小 bash 脚本,然后截取屏幕截图并关闭浏览器。
你可以在这里找到更多信息,或者只是在 shell 中输入import --help ;)
http://khtml2png.sourceforge.net/
deb 文件
安装 libkonq4 后在我的 Ubuntu 上工作......但您可能必须涵盖其他依赖项。
我认为现在对 javascript 的支持可能会更好!
斯蒂芬
不适用于命令行,但至少用于批量操作以获取更大的 URL 集,您可以使用 firefox 及其插件 fireshot(许可版本?)。
- 为您的集合中的所有 url 打开标签(例如“打开此文件夹中所有书签的标签...”)。
- 然后在fireshot启动“捕获所有标签”
- 然后在编辑窗口中调用“选择所有镜头->保存所有镜头”
在以一组漂亮的截图文件结束之前设置截图属性(大小、文件格式等)。
史蒂芬