你的位置:首页 > Java教程

[Java教程]根据css文件下载图片

功能其实很见简单,下载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)\)/gvar 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