命令行下的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,两者结合,再加上一些自写脚本的补充,基本上可以满足大部分命令行方式截图的需求了。

时间: 2014-07-16

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

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

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

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

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#不使用系统api实现可以指定区域屏幕截屏功能

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

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

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

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

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

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

解析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就可以实现截屏. 复制代码 代码如下

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

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

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

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

Python 中的Selenium异常处理实例代码

自动化测试执行过程中,难免会有错误/异常出现,比如测试脚本没有发现对应元素,则会立刻抛出NoSuchElementException异常.这时不要怕,肯定是测试脚本或者测试环境哪里出错了!那如何处理才是关键?因为一般只是局部有问题,为了让脚本继续执行,so我们可以用try...except...raise捕获异常.该捕获异常后可以打印出相应的异常原因,这样以便于分析异常原因. 下面将举例说明,当异常抛出后将信息打印在控制台,同时截取当前浏览器窗口,作为后续bug的依据给相应开发人员更好下定位问题

利用python中的matplotlib打印混淆矩阵实例

前面说过混淆矩阵是我们在处理分类问题时,很重要的指标,那么如何更好的把混淆矩阵给打印出来呢,直接做表或者是前端可视化,小编曾经就尝试过用前端(D5)做出来,然后截图,显得不那么好看.. 代码: import itertools import matplotlib.pyplot as plt import numpy as np def plot_confusion_matrix(cm, classes, normalize=False, title='Confusion matrix', cma

python中 chr unichr ord函数的实例详解

python中 chr unichr ord函数的实例详解 chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符.unichr()跟它一样,只不过返回的是Unicode字符,这个从Python 2.0才加入的unichr()的参数范围依赖于你的python是如何被编译的.如果是配置为USC2的Unicode,那么它的允许范围就是range(65536)或0x0000-0xFFFF:如果配置为UCS4,那么这个值应该是range(1114112)或0x

python中判断文件编码的chardet(实例讲解)

1.实测,这个版本在32位window7和python3.2环境下正常使用. 2.使用方法:把解压后所得的chardet和docs两个文件夹拷贝到python3.2目录下的Lib\site-packages目录下就可以正常使用了. 3.判断文件编码的参考代码如下: file = open(fileName, "rb")#要有"rb",如果没有这个的话,默认使用gbk读文件. buf = file.read() result = chardet.detect(buf)

python中字符串变二维数组的实例讲解

有一道算法题题目的意思是在二维数组里找到一个峰值.要求复杂度为n. 解题思路是找田字(四边和中间横竖两行)中最大值,用分治法递归下一个象限的田字. 在用python定义一个二维数组时可以有list和numpy.array两种方式,看了几篇python中二维数组的建立的博客发现大多都是建立的初始化的二维数组,而我需要通过文件读取得到的是字符串,再把字符串转换为二维数组,找不到解决方法还是决定自己来转换. 首先,最开始的字符串输出如下,数字之间有空格 思路就是把先按换行符进行切片,再对每一行的字符再

对python中if语句的真假判断实例详解

说明 在python中,if作为条件语句,当if后面的条件参数为真时,则执行后面的语句块,反之跳过,为了深入理解if语句,我们需要知道if语句的真假判断方式. 示例 在python交互器中,经过测试发现以下条件均为假,相当于False In [2]: if '': ...: print('ok') ...: In [3]: if 0: ...: print('ok') ...: In [4]: if None: ...: print('ok') ...: In [5]: if []: ...:

对python中GUI,Label和Button的实例详解

如下所示: #coding=utf-8 import Tkinter top=Tkinter.Tk() #400x300:代表初始化时主窗口的大小,300,100分别代表窗口的初始化位置 #x:为小写的x top.geometry('400x300+300+100') #创建一个文本框,里面内容为"hello world" lab=Tkinter.Label(top,text='hello world') #布局方式 lab.pack() #创建一个按钮 button=Tkinter.

使用Python中的reduce()函数求积的实例

编写一个prod()函数,可以接受一个list并利用reduce()求积. from functools import reduce def prod(x,y): return x * y L = reduce(prod,[3,5,7,9]) print(L) 打印结果如下: 以上这篇使用Python中的reduce()函数求积的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

在python中,使用scatter绘制散点图的实例

如下所示: # coding=utf-8 import matplotlib.pyplot as plt x_values=[1,2,3,4,5] y_values=[1,4,9,16,25] # s为点的大小 plt.scatter(x_values,y_values,s=100) # 设置图表标题并给坐标轴加上标签 plt.title("Scatter pic",fontsize=24) plt.xlabel("Value",fontsize=14) plt.y