如何从命令行获取网页的整页屏幕截图?

我在我的Linode VPS上安装了CutyCapt ,并使用它通过以下命令生成屏幕截图。

xvfb-run --server-args="-screen 0, 1024x768x24" ./CutyCapt --url=http://www.google.com --out=example.png 

它按预期工作得很好。 如果页面可以垂直滚动(即高度大于768),唯一的问题是什么? 在这种情况下,屏幕截图将被切断。 一种可能的解决方案是采用更长的屏幕高度(例如,2000),然后从底部移除空白区域。 但这不是最佳解决方案。

有人可以建议我更好的解决方案吗?

这里是您可以从终端使用的应用程序列表:

  • wkhtmltopdf (来源)

wkhtmltopdf是一个命令行实用程序,它使用webkit呈现引擎将html转换为pdf。

 sudo apt-get install wkhtmltopdf 
  • wkhtmltoimage (来源)

wkhtmltoimage实用程序将获取给定URL的屏幕截图,并将其另存为png图像。 它使用webkit呈现引擎。

下载: http : //code.google.com/p/wkhtmltopdf/downloads/list

用法:

要使用wkthmltoimage实用程序,只需从终端运行命令,给出URL和图像文件的名称。

 $ ./wkhtmltoimage-amd64 http://www.google.com google.png 

它将使用www.google.com的屏幕截图在主目录中创建google.png

其他选择:

wkhtmltoimage提供了许多自定义屏幕截图的选项。 一些例子如下:

质量 – 控制生成图像的质量/压缩。 默认值为94

 $ ./wkhtmltoimage-amd64 --quality 50 http://www.google.com google.png 

禁用图像

 $ ./wkhtmltoimage-amd64 --no-images http://www.google.com google.png 

禁用javascript

 $ ./wkhtmltoimage-amd64 --disable-javascript http://www.google.com google.png 

裁剪截图

 $ ./wkhtmltoimage-amd64 --crop-h 300 --crop-w 300 --crop-x 0 --crop-y 0 http://www.google.com googl 
  • cutycapt (来源)

Cutycapt是一个实用程序,用于获取URL的屏幕截图,使用webkit呈现引擎并将其保存到图像文件。

安装

 sudo apt-get install subversion libqt4-webkit libqt4-dev g++ cutycapt 

用法要使用cutycapt,只需从终端运行命令,提供输出文件的URL和名称。

 $ cutycapt --url=http://www.google.com/ --out=google.png 

它将在主目录中创建google.png文件,该文件将包含www.google.com的屏幕截图

  • khtml2png (来源)

khtml2png使用konqueror渲染引擎创建网页的屏幕截图。

下载

 http://khtml2png.sourceforge.net/index.php?page=download 

安装

要安装khtml2png,必须在系统上编译和构建程序。

 sudo apt-get install kdelibs4-dev zlib1g-dev g++ cmake Extract the khtml2png archive. ./configure make sudo checkinstall (this will create a deb file and install it , so that it can easily uninstalled later) 

用法要使用khtml2png,请从命令行运行程序,提供url和其他选项。

 $ khtml2png2 --width 800 --height 600 http://www.google.com/ google.png 

这将在主目录中创建一个带有www.google.com屏幕截图的google.png。

  • PyWebShot (来源)

Pywebshot使用嵌入式mozilla的python绑定( http://www.mozilla.org/unix/gtk-embedding.html

安装

 sudo apt-get install python-gtkmozembed Download pywebshot from https://github.com/coderholic/PyWebShot 

用法:

 $ python pywebshot.py www.google.com -t 1024x768<br />
Loading www.google.com... saved as www.google.com.png

它应该在目录中创建一个www.google.com.png,其屏幕截图大小为1024 x 768。

用于创建网页屏幕截图的工具:

Gimp 2.8具有Create / From网页,非常易于使用,允许配置页面宽度和字体大小(但只有预定义的选择)。

快门(需要gnome-web-photo),一个也支持网页的GUI截图工具,似乎没有太多的可配置性

gnome-web-photo,命令行应用程序,允许用户样式表和设置页面宽度

webkit-image-gtk,命令行应用程序,使用起来很简单,根本没有配置

webkit-image-qt,命令行应用程序,使用起来很简单,根本没有配置

尚未找到任何允许缩放,自由控制字体大小或将屏幕截图限制为特定div的内容。 Gimp可以通过使用script-fu和批处理模式自动化。

如果你想截取一个网页的截图,那你为什么不使用“ScreenGrab插件”? 这个插件可以拍摄填充屏幕截图,甚至是选定区域。 请在此处查看: https : //addons.mozilla.org/en-US/firefox/addon/1146