如何截取完整网页的屏幕截图?

我长时间使用快门截图应用程序来进行截屏。但是它们只能截取与物理屏幕一样大的屏幕截图。

有时候我需要截取一个整个网页的截图,因为浏览器无法正确保存该页面,或者我想包括弹出窗口。这种情况需要一个可以截取比物理屏幕更长的屏幕截图的软件。

有没有这样的软件?

请注意,this问题及其答案是关于网页保存应用程序的。它们不会保存弹出窗口,而在我的情况下这是必要的。我不需要转换器。我需要一个字面意义上的截图应用程序或任何可以保存弹出窗口的工具。

我使用Mozilla Firefox,因为它有非常好的插件。解决方案应该适用于Firefox本身。


1可能是重复的问题:如何截取整个网页的屏幕截图? - landroni
@landroni 在我的情况下,它们不会保存弹出窗口,这是非常重要的。谢谢。 - Registered User
我不知道你所说的弹出窗口是什么意思,但是这里提供的答案是否有帮助?你可以在这个链接中查看:http://askubuntu.com/questions/231757/screenshot-tools-to-capture-scrolling-windows - Aditya
@Aditya 我不知道那是什么东西,但它看起来像是类似于弹出窗口的东西。但它不会动,也没有保存。具体链接是 这个 - Registered User
@Aditya 不,它们不起作用。快门失灵了,另一个什么也没做。 - Registered User
6个回答

在最新版本的Firefox上,不需要任何插件。这个功能已经内置在浏览器中。
使用鼠标的新方法
非常简单:在页面上的任何地方右键单击,选择“截图”。弹出窗口将允许您选择可见页面的区域或完整的网页。
控制台方法
1. 在Firefox中,使用Ctrl+Shift+F2打开Web开发者控制台。(确切的按键组合可能取决于您的设置。) 2. 输入:screenshot --fullpage(这将自动完成,所以:s Tab --fullpage将起作用)。
这将把截图保存为PNG文件到您的下载文件夹中。默认情况下,文件名包括日期和时间。如果您希望,可以通过在CLI上传递不同的文件名来使用不同的文件名::screenshot --fullpage my_name.png。
这个方法也适用于弹出窗口,但每个窗口都需要单独保存。我不知道如何将它们合并成一张截图。(当然,你可以在GIMP或其他图像编辑工具中后期完成这个操作。)

太好了!我没想到会在这么长时间之后收到回复。谢谢。 - Registered User
谢谢你的回答。它对我有所帮助,但是关于“快捷方式”有一点变化。我正在使用“Firefox 36.0.4”,而“Shift+F2”是用于“开发者控制台”的。对于“浏览器控制台”,快捷键是“Ctrl + Shift + J”。以防万一对其他人有所帮助! - Vinod Tigadi
可能是一个插件改变了默认行为,@VinodTigadi。我不确定。 - TRiG
嗯,可能吧。因为我在工作场所检查了4-5台Ubuntu机器,它们都有快捷键'Ctrl + Shift + J'。不管怎样,谢谢你的快速回复 :-) - Vinod Tigadi
按下Ctrl+Shift+J,对我来说,会弹出一个用于调试的浏览器控制台,这是与浏览器内部CLI不同的东西。浏览器内部CLI是一个简单的命令行界面,用于控制浏览器本身,而不是检查当前打开的页面。 - TRiG
@RegisteredUser。不确定您是否已收到我对此问题的编辑,适用于最新版本的Firefox。 - TRiG
@TRiG 我注意到火狐浏览器在某个时候发生了这个变化。感谢你更新答案。附注:你可能也想保留旧答案,并加上一条说明已过时,并将新答案放在顶部。 - Registered User

这是一个你可以从终端使用的应用程序列表:

wkhtmltopdf 是一个使用 WebKit 渲染引擎将 HTML 转换为 PDF 的命令行实用程序。

sudo apt-get install wkhtmltopdf

wkhtmltoimage工具可以对给定的URL进行截图,并将其保存为PNG格式的图片。它使用了WebKit渲染引擎。

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

使用方法:

要使用wkthmltoimage工具,只需在终端中运行命令,提供URL和图像文件的名称即可。

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

它将在主目录中创建一个名为google.png的文件,其中包含www.google.com的屏幕截图。
其他选项:
wkhtmltoimage提供了许多选项来自定义屏幕截图。以下是一些示例:
Quality - 控制生成图像的质量/压缩程度。默认值为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是一个实用工具,用于使用Webkit渲染引擎对URL进行截图,并将其保存为图像文件。

安装

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使用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

这将在主目录中创建一个 google.png 文件,其中包含 www.google.com 的屏幕截图。

Pywebshot 使用嵌入的 Mozilla(http://www.mozilla.org/unix/gtk-embedding.html)Python 绑定。

安装

sudo apt-get install python-gtkmozembed

Download pywebshot from https://github.com/coderholic/PyWebShot

使用方法:
$ python pywebshot.py www.google.com -t 1024x768&lt;br /&gt;<br />Loading www.google.com... saved as www.google.com.png

它应该在目录中创建一个名为www.google.com.png的截图,尺寸为1024 x 768。

请检查这些命令,它们是否只适用于amd64系统?我使用的是i386系统。 - Registered User
不,它们并不专门针对amd64。试试看吧。 - Maythux

我试了一个很好用的Chrome插件Awsome Screenshot: Screen Capture Annotate。对我来说效果非常不错。它可以截取弹出窗口(基于jQuery),还可以完整地截取整个页面,并且还能与HTTPS一起使用!太棒了。

非常适用于Chrome! - Taylor R

对于那些寻找命令行界面选项的人: 没有必要使用其他工具,最新版本的Chrome和Firefox都有内置功能。 Chrome
/path/to/chrome --headless --screenshot="img.png" "www.stackoverflow.com"

火狐浏览器
/path/to/firefox -screenshot img.png www.stackoverflow.com

就是这样。


如果你遇到了“仅在启用远程调试时支持打开多个标签页”的问题,请确保你在--screenshot之后实际上输入了等号= - törzsmókus


哦,我没有看到你需要弹出窗口,我不知道它是否能做到。 - Wouter

如果你使用的是Chrome浏览器,你可以使用屏幕截图扩展程序来支持全页面截图。请注意,它有时可能无法在启用HTTPS的页面上正常工作。