用JavaScript做了一个小工具
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>网页抓图 by freshriver</TITLE>
</HEAD>
<BODY>
网址:<input type=text id=rurl size=90 value="http://www.phpchina.com/bbs/viewthread.php?tid=53145"><input id=btnget type=button value="获取图片" onclick="getData()"><br>
<table width=100%>
<tr><td width=335>
<div id=imgBrowser style="width:330;height:545;overflow:auto"></div>
</td><td id=td><div id=divImg style="overflow:auto"><img id=imgShow></div>
</td></tr>
</table>
</BODY>
<script>
divImg.style.height = td.clientHeight;
divImg.style.width = td.clientWidth;
var REQ = null;
function request(url, onComplete)
{
try {
REQ = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
REQ = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
REQ = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
}
}
}
REQ.open("GET", url, true);
REQ.onreadystatechange = onComplete;
REQ.send(null);
return REQ;
}
function onComplete(rsp)
{
if (REQ)
if (REQ.readyState == 4)
{
var str = REQ.responseText;
RegExpTest(str);
btnget.disabled = false;
}
}
var baseUrl = "";
var hostUrl = '';
var FILEXTS = [".html", ".jsp", ".htm", ".asp", ".php", ".aspx"];
function isFile(url)
{
url = url.toLowerCase();
var ret = '';
for (var n = 0; n < FILEXTS.length; n ++)
{
//alert(FILEXTS[n] + '\r' + url + '\r' + url.indexOf(FILEXTS[n]));
//alert(url.length - FILEXTS[n].length);
if (url.indexOf(FILEXTS[n]) != -1) //url.length - FILEXTS[n].length - 1)
{
ret = FILEXTS[n];
break;
}
}
return ret;
}
//function
function reUrl(url)
{
if (baseUrl == "")
{
baseUrl = rurl.value;
var idx = baseUrl.indexOf('?');
if (idx != -1)
baseUrl = baseUrl.substring(0, idx);
//alert(baseUrl);
for (var n = 8; n < baseUrl.length; n ++)
{
if (baseUrl.substring(n, n + 1) == '/')
{
hostUrl = baseUrl.substring(0, n) + '/';
break;
}
}
if (baseUrl.substring(baseUrl.length - 1, baseUrl.length) != '/')
{
var ext = isFile(baseUrl);
//alert(ext);
if (ext != '')
{
//alert(baseUrl);
for (var n = baseUrl.length - 1; n >= 0; n --)
{
if (baseUrl.substring(n, n + 1) == '/')
{
baseUrl = baseUrl.substring(0, n) + '/';
//alert(baseUrl);
break;
}
}
}
else
baseUrl += '/';
}
}
if (url.substring(0, 4).toLowerCase() != 'http')
{
//if (url.substring(0, 1) == '/')
// return hostUrl + url;
//else
return baseUrl + url;
}
else
return url;
}
var imgCount = 0;
function addImg(url, orsrc)
{
var img = document.createElement('img');
img.setAttribute('src', url);
img.style.width = 100;
img.style.height = 100;
img.style.cursor = 'hand';
img.errored = false;
img.title = url;
img.style.border = '2 solid white';
img.onclick = function() { imgShow.setAttribute('src', this.src);};
img.onmouseenter = function() { this.style.border = '2 solid red'};
img.onerror = function() {
if (! img.errored) {
//alert(img.src);
//alert(hostUrl + orsrc) ;
img.src = hostUrl + orsrc;
img.title = img.src;
img.errored = true;
//img.detachEvent('onerror', img.onerror);
}
};
img.onmouseleave = function() { this.style.border = '2 solid white'};
imgBrowser.appendChild(img);
imgCount ++;
if (imgCount % 3 == 0)
imgBrowser.appendChild(document.createElement('br'));
}
function RegExpTest(src)
{
var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
if (ver >= 5.5){ // 测试 JScript 的版本。
var arr;
imgCount = 0;
baseUrl = '';
var re = /[http:////]*[\w+.]*[//\w+//]*[/\w+\?\s\=\d\-\(\)]+.gif/g; // 创建正则表达式模式。
while ((arr = re.exec(src)) != null)
addImg(reUrl(String(arr)), String(arr));
re = /[http:////]*[\w+.]*[//\w+//]*[/\w+\?\s\=\d\-\(\)]+.jpg/g; // 创建正则表达式模式。
while ((arr = re.exec(src)) != null)
addImg(reUrl(String(arr)), String(arr));
re = /[http:////]*[\w+.]*[//\w+//]*[/\w+\?\s\=\d\-\(\)]+.jpeg/g; // 创建正则表达式模式。
while ((arr = re.exec(src)) != null)
addImg(reUrl(String(arr)), String(arr));
re = /[http:////]*[\w+.]*[//\w+//]*[/\w+\?\s\=\d\-\(\)]+.png/g; // 创建正则表达式模式。
while ((arr = re.exec(src)) != null)
addImg(reUrl(String(arr)), String(arr));
}
else{
alert("请使用 JScript 的更新版本");
}
}
function getData()
{
btnget.disabled = true;
var url = rurl.value;
var response = request(url, onComplete);
}
</script>
</HTML>
<HTML>
<HEAD>
<TITLE>网页抓图 by freshriver</TITLE>
</HEAD>
<BODY>
网址:<input type=text id=rurl size=90 value="http://www.phpchina.com/bbs/viewthread.php?tid=53145"><input id=btnget type=button value="获取图片" onclick="getData()"><br>
<table width=100%>
<tr><td width=335>
<div id=imgBrowser style="width:330;height:545;overflow:auto"></div>
</td><td id=td><div id=divImg style="overflow:auto"><img id=imgShow></div>
</td></tr>
</table>
</BODY>
<script>
divImg.style.height = td.clientHeight;
divImg.style.width = td.clientWidth;
var REQ = null;
function request(url, onComplete)
{
try {
REQ = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
REQ = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
REQ = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
}
}
}
REQ.open("GET", url, true);
REQ.onreadystatechange = onComplete;
REQ.send(null);
return REQ;
}
function onComplete(rsp)
{
if (REQ)
if (REQ.readyState == 4)
{
var str = REQ.responseText;
RegExpTest(str);
btnget.disabled = false;
}
}
var baseUrl = "";
var hostUrl = '';
var FILEXTS = [".html", ".jsp", ".htm", ".asp", ".php", ".aspx"];
function isFile(url)
{
url = url.toLowerCase();
var ret = '';
for (var n = 0; n < FILEXTS.length; n ++)
{
//alert(FILEXTS[n] + '\r' + url + '\r' + url.indexOf(FILEXTS[n]));
//alert(url.length - FILEXTS[n].length);
if (url.indexOf(FILEXTS[n]) != -1) //url.length - FILEXTS[n].length - 1)
{
ret = FILEXTS[n];
break;
}
}
return ret;
}
//function
function reUrl(url)
{
if (baseUrl == "")
{
baseUrl = rurl.value;
var idx = baseUrl.indexOf('?');
if (idx != -1)
baseUrl = baseUrl.substring(0, idx);
//alert(baseUrl);
for (var n = 8; n < baseUrl.length; n ++)
{
if (baseUrl.substring(n, n + 1) == '/')
{
hostUrl = baseUrl.substring(0, n) + '/';
break;
}
}
if (baseUrl.substring(baseUrl.length - 1, baseUrl.length) != '/')
{
var ext = isFile(baseUrl);
//alert(ext);
if (ext != '')
{
//alert(baseUrl);
for (var n = baseUrl.length - 1; n >= 0; n --)
{
if (baseUrl.substring(n, n + 1) == '/')
{
baseUrl = baseUrl.substring(0, n) + '/';
//alert(baseUrl);
break;
}
}
}
else
baseUrl += '/';
}
}
if (url.substring(0, 4).toLowerCase() != 'http')
{
//if (url.substring(0, 1) == '/')
// return hostUrl + url;
//else
return baseUrl + url;
}
else
return url;
}
var imgCount = 0;
function addImg(url, orsrc)
{
var img = document.createElement('img');
img.setAttribute('src', url);
img.style.width = 100;
img.style.height = 100;
img.style.cursor = 'hand';
img.errored = false;
img.title = url;
img.style.border = '2 solid white';
img.onclick = function() { imgShow.setAttribute('src', this.src);};
img.onmouseenter = function() { this.style.border = '2 solid red'};
img.onerror = function() {
if (! img.errored) {
//alert(img.src);
//alert(hostUrl + orsrc) ;
img.src = hostUrl + orsrc;
img.title = img.src;
img.errored = true;
//img.detachEvent('onerror', img.onerror);
}
};
img.onmouseleave = function() { this.style.border = '2 solid white'};
imgBrowser.appendChild(img);
imgCount ++;
if (imgCount % 3 == 0)
imgBrowser.appendChild(document.createElement('br'));
}
function RegExpTest(src)
{
var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
if (ver >= 5.5){ // 测试 JScript 的版本。
var arr;
imgCount = 0;
baseUrl = '';
var re = /[http:////]*[\w+.]*[//\w+//]*[/\w+\?\s\=\d\-\(\)]+.gif/g; // 创建正则表达式模式。
while ((arr = re.exec(src)) != null)
addImg(reUrl(String(arr)), String(arr));
re = /[http:////]*[\w+.]*[//\w+//]*[/\w+\?\s\=\d\-\(\)]+.jpg/g; // 创建正则表达式模式。
while ((arr = re.exec(src)) != null)
addImg(reUrl(String(arr)), String(arr));
re = /[http:////]*[\w+.]*[//\w+//]*[/\w+\?\s\=\d\-\(\)]+.jpeg/g; // 创建正则表达式模式。
while ((arr = re.exec(src)) != null)
addImg(reUrl(String(arr)), String(arr));
re = /[http:////]*[\w+.]*[//\w+//]*[/\w+\?\s\=\d\-\(\)]+.png/g; // 创建正则表达式模式。
while ((arr = re.exec(src)) != null)
addImg(reUrl(String(arr)), String(arr));
}
else{
alert("请使用 JScript 的更新版本");
}
}
function getData()
{
btnget.disabled = true;
var url = rurl.value;
var response = request(url, onComplete);
}
</script>
</HTML>
功能:根据指定网址,只浏览其图片资源,效果图如下:
方便那些从网上下载图片的朋友们,特别是有些图片以背景方式用在页面上时比较麻烦一点,不过有了这个工具就简单多了,复制下面的代码到记事本,然后另存为.html文件,用浏览器打开就可以使用了,代码如下: