命令行下的2款网页截图工具推荐

现在很多浏览器或浏览器工具栏、插件都提供网页截图的功能,不过大多数都需要鼠标或键盘手工操作,而不能通过命令行自动化完成。有时我们可能需要每天定时对某些网页截图,或者批量地对多个URL截图,这时这些的需要手工操作的截图工具或插件就有一点不够用了。不过幸运的是,有一些免费的可以通过命令行方式操作的网页截屏软件或浏览器插件可以帮我们解决这个问题,下面介绍两款我经常使用的。

第一款是IECapt,官方主页在 http://iecapt.sourceforge.net/ ,这是一个免费开源的软件,有C++和C#两种语言的版本。

这款软件没有GUI,只能在纯命令行方式下运行,运行的命令为:

代码如下:

IECapt –url=http://jb51.net/ –out=localfile.png

其中参数 –url 后面跟的是你要截图的网站的地址,–out 后面跟的是截图后的图片文件的保存名。这两个参数是最常用的,另外还有一些参数,比如 –delay ,可以指定页面打开后过多少秒再截图,这在截取某些使用了 Ajax 等延迟加载技术的页面时非常有用。更多的参数可以用 IECapt –help 命令来查看。

这个软件很好用,不过如同它的名字所说的,它是基于IE的,这样一来基本上也只能在Windows系统上使用。截图时它实际上是在后台调用了本机上安装的IE浏览器对页面进行渲染,一般来说,你在IE浏览器下看到某个页面是什么样子,用IECapt截的图也是那个样子。

IECapt的主页上还介绍了另一个跨平台的基于 WebKit 引擎的网页截图软件 CutyCapt ,这个软件需要 Qt 库的支持,使用方法和 IECapt 几乎一样,但是有更多更灵活的参数,这儿就不详细介绍了。

要介绍的另一款可以在命令行模式下使用的网页截图工具是 Firefox 的插件 PageSaver ,主页是 http://pearlcrescent.com/products/pagesaver/

这个插件有需要付费的专业版以及免费的基本版,对于一般的命令行截图来说,基本版就足够了。安装好以后,它会在浏览器地址栏旁边添加一个照相机图标的按钮,点击即可像普通的网页截图插件一样对当前网页进行截图,也可以点击图标旁的下拉三角做一些设置,比如设计默认保存文件名规则。同时,你可以通过命令行对指定URL进行截图,比如:

[code]firefox -saveimage http://jb51.net/[/code]

这个命令会调用系统的 Firefox ,打开指定的网址并截图,如果 Firefox 当时不在运行,这个命令会先打开 Firefox ,截图完成后再关闭 Firefox 。需要注意的是,如果要在命令行下使用这个插件截图,最好关闭火狐浏览器“恢复上次会话”的功能,否则命令行新打开页面时有可能一直停在确认是否打开上次会话的界面。

截图之后图片会被保存在执行命令的当前目录,文件名格式需要在插件的选项面版中设置(专业版可以在截图命令中再指定保存文件名),图片可保存为PNG或JPEG两种格式。这个插件是基于 Firefox 的,截图当然也是通过 Firefox 浏览器渲染的。

IECapt和Firefox PageSaver,一个基于 IE,一个基于 Firefox,两者结合,再加上一些自写脚本的补充,基本上可以满足大部分命令行方式截图的需求了。

(0)

相关推荐

  • c#根据网址抓取网页截屏生成图片的示例

    复制代码 代码如下: using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Threading;using System.Windows.Forms; public class WebsiteToImage{private Bitmap m_Bitmap;private string m_Url;private string m_FileName = string.Empty; public

  • jcrop 网页截图工具(插件)开发

    今天给大家介绍一下一个web 中经常会用到的截图(如:头像等)工具: Jcrop演示 项目结构: 效果图: 这个很有用: 看到这些,大家也想自己试试吧 =========================================== 代码部分: =========================================== 准备工作: 下载:Jcrop-0.9.10 (zip format) 解压后放入到你的项目里面,就如上面的项目结构一样... /Jcrop/WebContent

  • Android截屏保存png图片的实例代码

    复制代码 代码如下: import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException; import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Rect;import android.util.Log;import android.view.View; publ

  • asp.net截屏功能实现截取web页面

    本文实例展示了asp.net截屏功能实现截取web页面的方法,代码简洁易懂,分享给大家供大家参考. 具体实现代码如下: using System.Drawing; //打开该页面 System.Diagnostics.Process.Start("IEXPLORE.EXE", "http://localhost:56/Spacxxe.html"); System.Threading.Thread.Sleep(3000); //截屏 //创建并设置画布大小 Syste

  • 对指定的网页进行截图的效果 C#版

    碰到一个项目,需要对指定的网页进行截图保存,晕死! 需求永远都是怪异的..... 解决是关键- 遂写了以下代码,快准狠!(因为赶时间!) 可以实现对指定的页面获取,按指定的大小生成缩略图,当然也可以1:1的产生图, 页面上的javascript 运行对截图貌似没任何影响,相当的正常,我个人都觉得很神奇. 首先对项目添加系统引用 System.Drawing; System.Drawing.Design; System.Windows.Forms; 获取指定网页并转换成图片的类: using Sy

  • 解析android截屏问题

    我是基于android2.3.3系统之上的,想必大家应该知道在android源码下面有个文件叫做screencap吧,位于frameworks\base\services\surfaceflinger\tests\screencap\screencap.cpp,你直接在linux下编译(保存在 /system/bin/test-screencap),然后push到手机上再通过电脑去敲命令test-screencap /mnt/sdcard/scapxx.png就可以实现截屏. 复制代码 代码如下

  • 基于C#实现的屏幕指定区域截屏代码

    以前在别的地方见过一个通过调用系统API实现屏幕截图的例子,从内心来说我不太喜欢在C#代码中出现这种情况,现在什么都讲"和谐",我觉得这种做法就是破坏了我们的"和谐"代码,呵呵,开玩笑,有的时候,不通过系统API确实难以做到的. 下面讲述的就是怎么通过纯C#来实现屏幕截图,代码如下: 复制代码 代码如下: //截取全屏图象        private void btnFullScreen_Click(object sender, EventArgs e)     

  • C#实现网页截图功能

    网页截图是很常见的实用功能,今天就为大家共享一个实现浏览器截图的代码,主要程序代码如下所示: private void Form_Load(object sender, EventArgs e) { //接收web url string colle = string.Empty; string url = string.Empty; //获取进程调用传入的命令 string[] args = Environment.GetCommandLineArgs(); string[] args = ne

  • 当前页禁止复制粘贴截屏代码小集

    复制代码 代码如下: <style>@media print{body{display:none}}</style> <%--禁止截屏,通过清除剪切板实现 Start--%> <script type="text/javascript"> function clearShearPlate() { try { if (clipboardData.getData("Text") || clipboardData.getDa

  • Python中使用 Selenium 实现网页截图实例

    Selenium 是一个可以让浏览器自动化地执行一系列任务的工具,常用于自动化测试.不过,也可以用来给网页截图.目前,它支持 Java.C#.Ruby 以及 Python 四种客户端语言.如果你使用 Python,则只需要在命令行里输入"sudo easy_install selenium"并回车,即可安装 selenium 的 Python 版本的客户端支持. 以 Python 为例,我们可以使用下面的脚本来给指定页面(比如我们首页)截图: # -*- coding: utf-8 -

  • 使用python编写android截屏脚本双击运行即可

    测试的过程中经常需要截取屏幕,通常的做法是使用手机自带的截屏功能,然后将截屏文件复制出来,这种方法的优点是不需要连接数据线就可截屏,缺点则是生成的截屏文件命名是随机命名的,复制出来也比较麻烦.另一种方法是使用PC端的手机助手类软件. 这里使用python编写一个截屏的脚本,双击运行脚本就OK,截屏成功后会将截屏文件已当前时间命名,并保存在存放脚本的当前路径的screenshot文件夹下: #!/usr/bin/env python import os import time PATH = lam

  • c#不使用系统api实现可以指定区域屏幕截屏功能

    复制代码 代码如下: //截取全屏图象        private void btnFullScreen_Click(object sender, EventArgs e)        {            //创建图象,保存将来截取的图象            Bitmap image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);            Graph

随机推荐