360  执行  dd  Bing  编码  XmlHttp  静态  百分比

您所在的位置:小祥子 » 编程 » JavaScript » 正文

根据css文件下载图片

时间:2015-05-03 编辑:游云 来源:本站整理

功能其实很见简单,下载CSS文件,在匹配url,在进行异步下载,直接上代码了

//downCss.JS 文件内容如下

"use strict"; var fs = require('fs'); var http = require('http'); var path = require('path'); var r_url = require('url'); var dirCache = {};//缓存减少判断 function makedir (pathStr, callback) { if (dirCache[pathStr] == 1) { callback(); } else { fs.exists(pathStr, function (exists) { if (exists == true) { dirCache[pathStr] == 1; callback(); } else { makedir(path.dirname(pathStr), function () { fs.mkdir(pathStr, function () { dirCache[pathStr] == 1; callback(); }) }); } }) } }; var CWD = process.cwd(); var reg = /:\s*url\(['"]?.*?(\1)\)/g var reg2 = /\((['"]?)(.*?)(\1)\)/ var URL = process.argv[2] || "http://fragment.firefoxchina.cn/res/css/main-min.css?v=20150127"; var isDownMap = {}; http.get(URL, function(res) { //console.log(path.resolve(process.cwd(), 'index.min.css')) //res.pipe(fs.createWriteStream(path.resolve(process.cwd(), 'index.min.css'))); var body = ""; res.setEncoding('utf8'); res.on('data', function (chunk) { body += chunk; }); res.on('end', function () { var match = body.match(reg); for (var i = 0, len = match.length; i < len; i++){ var m = match[i].match(reg2); if (m && m[2]) { var url = m[2]; let imgUrl = r_url.resolve(URL, url); if (!isDownMap[imgUrl]) { var uo = r_url.parse(imgUrl); let filepath = CWD + '/' + uo.hostname + uo.pathname; makedir(path.dirname(filepath), function () { http.get(imgUrl, function (res) { res.pipe(fs.createWriteStream(filepath)); }) }) isDownMap[imgUrl] = 1; } } } }); });

启动方式,建立个bat文件,文件内容为以下内容,双击运行就可以了,命令行后面添加css URL

node --harmony downCss.js http://static.youku.com/v1.0.1050/index/css/yk.css

关键词:文件 下载 图片