在Linux上创建网站截图的好命令行工具是什么?我需要在没有人工交互的情况下自动生成网站的屏幕截图。我找到的唯一工具是khtml2png,但我想知道是否有其他工具不是基于khtml(即有很好的JavaScript支持,......)。
答案 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)
答案 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(许可版本?)。
在您使用一组精美的镜头文件结束之前设置了屏幕截图属性(大小,文件格式等)。
斯特芬