软件应用范围: 看到喜欢的网页,另存为的话,并不能直接保存css中引用的图片。 那么就有了本软件的用武之地。 
亮点:自动匹配文件内的相对路径、css内图片地址值md5保存,用来避免不同文件夹同名文件的重复尴尬
1. [代码]AAuto 代码

import win.ui;
import inet.url;
import inet.whttp
import string.md5;
import web.form;
import fsys;
import win.ui.statusbar;
/*DSG{{*/
winform = ..win.form( right=587;bottom=400;max=false;text="CSS采集精灵";border="dialog frame";parent=...)
winform.add( 
btnDown={ bottom=71;text="下载";left=492;top=12;z=4;right=580;cls="button" };
richedit={ vscroll=1;right=580;left=8;multiline=1;top=80;z=3;bottom=372;edge=1;cls="richedit" };
groupbox={ bottom=67;right=482;left=7;top=7;z=1;text="CSS HTTP网址";edge=1;cls="groupbox" };
cssUrl={ bottom=55;right=471;left=14;top=26;z=2;edge=1;cls="edit" }
)
/*}}*/
 
status = win.ui.statusbar(winform);
status.addItem(" AAuto 感谢有你,新年快乐!",280);
status.addItem(" Author:时代网络。QQ:87059222 ");
 
// 赋值测试css地址
winform.cssUrl.text = "http://www.aau.cn/data/cache/style_1_common.css?U0g";
 
winform.btnDown.oncommand = function(id,event){
    if(winform.cssUrl.text == ""){
        winform.msgbox("CSS文件地址不能为空!","CSS采集精灵");
            return ; 
    }
    var cssFile = winform.cssUrl.text;
    var tCssPath = io.splitpath(cssFile);
     
    //获取当前时间
    t_now=..time.now();
    t_now.format=" %Y年%m月%d日 %H-%M-%S";
    t_now = tostring(t_now);
    var cssFolder = string.replace(tCssPath.name,"[&%?]","_") + t_now;
    if(!io.exist("/data/" + cssFolder) ){
        fsys.createDir("/data/" + cssFolder)
    }
 
    var whttp = inet.whttp();
    cssContent,errmsg = whttp.get(cssFile);
    if(errmsg != null){
        winform.msgbox("CSS文件下载出现错误," + errmsg + "!","CSS采集精灵");
        return ; 
    }
    if (cssContent==null){
        winform.msgbox("CSS文件内容为空或者下载异常!","CSS采集精灵");
        return ; 
    }
    var regexExpression = "url\((.*?)\)";
    for strGmatchResult in string.gmatch( cssContent, regexExpression ){
        if(string.find(strGmatchResult,'data:image') || strGmatchResult=='about:blank'){
            //暂不处理      
        } else {
            strGmatchResult =  string.replace(strGmatchResult,"""","");
            // 处理相对路径图片网址
            imghttpFile =  inet.url.joinpath(cssFile,strGmatchResult);
            // 将图片网址md5处理,防止重复下载以及文件同名不同参下载覆盖冲突,用md5取值都是唯一了。
            strGmatchResultMD5 = string.md5(imghttpFile,true); 
             
            // http://hi.bdimg.com/static/qhome/css/home/n0001/home_datauri.css?v=bbdea37b.css
            // 针对css内 带参数图片文件,分离出真是后缀名。有更好的写法请指点哦
            // 如 "tpl_n0001_theme_001_background.jpg?v=30ab89f5.gif";
            var tpath = io.splitpath(strGmatchResult);
            var file = tpath.file;
            if(string.find(file,"?")){
                ext = io.splitpath(string.split(file,'?')[1]).ext;
            }else {西游记动画片搞笑

                ext = tpath.ext;

}http://www.huiyi8.com/gaoxiaodonghua/xiyouji/

          var saveCssImgFileName = strGmatchResultMD5 + ext;

cssContent = string.replace(cssContent,'<@'+strGmatchResult+'@>',saveCssImgFileName);
            // 根据md5文件名判断没下载过才下载
            if (!io.exist("/data/" + cssFolder + "/" + saveCssImgFileName)) {
                winform.richedit.appendText(imghttpFile + " ||| " + saveCssImgFileName + '\r\n\r');
                imgData,errmsg = whttp.get(imghttpFile);
                if(errmsg == null){
                    string.save("/data/" + cssFolder + "/" + saveCssImgFileName ,imgData);
                }else{
                    winform.richedit.appendText(imghttpFile + " ||| 错误:" + errmsg + '\r\n\r');
                }
                win.delay(100);
            }
        }
    }
    string.save("/data/" + cssFolder + "/" + cssFolder + ".css" ,cssContent);
    winform.richedit.appendText("CSS及图片下载成功,感谢使用!" + '\r\n');
}
 
winform.show() 
win.loopMessage();

css 采集下载的更多相关文章

  1. CSS Spritec下载,精灵图,雪碧图,初探之原理、使用

    CSS Spritec下载,精灵图,雪碧图,初探之原理.使用 关于CSS Sprite CSSSprites在国内很多人叫css精灵雪碧图,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零 ...

  2. 爬虫入门【11】Pyspider框架入门—使用HTML和CSS选择器下载小说

    开始之前 首先我们要安装好pyspider,可以参考上一篇文章. 从一个web页面抓取信息的过程包括: 1.找到页面上包含的URL信息,这个url包含我们想要的信息 2.通过HTTP来获取页面内容 3 ...

  3. js、css引用文件的下载方式

    js.css引用文件的下载方式 一.测试(chrome):1.直接使用<script...>.<link...>标签来混合引入脚本文件和css文件, <script as ...

  4. 常用CSS优化总结——网络性能与语法性能建议

    在前端面试中最常见的问题就是页面优化和缓存(貌似也是页面优化),被问了几次后心虚的不行,平然平时多少会用到一些,但突然问我,很难把自己知道的都说出来.页面优化明显不是一两句能够说完的,这两天总结了一下 ...

  5. html/css基础篇——link和@inport详解以及脚本执行顺序探讨

    先说一说两者之间的异同 两者都可以引用外部CSS的方式,现在主流浏览器两者都支持(ps:@import是CSS2.1提出的),但是存在一定的区别: 1.link是XHTML标签,除了加载CSS外,还可 ...

  6. 动画库Animate.css

    笔记分享: 用法:到官网(http://daneden.github.io/animate.css/),下载animate.min.css文件.点击这里 1.首先引入animate css文件 < ...

  7. JS 和 CSS 的位置对其他资源加载顺序的影响

    JS 和 CSS 在页面中的位置,会影响其他资源(指 img 等非 js 和 css 资源)的加载顺序,究其原因,有三个值得注意的点: JS 有可能会修改 DOM. 典型的,可能会有 document ...

  8. JAVA多线程下载网络文件

    JAVA多线程下载网络文件,开启多个线程,同时下载网络文件.   源码如下:(点击下载 MultiThreadDownload.java) import java.io.InputStream; im ...

  9. (转)常用CSS优化总结——网络性能与语法性能建议

    原文地址:http://www.cnblogs.com/dolphinX/p/3508657.html 在前端面试中最常见的问题就是页面优化和缓存(貌似也是页面优化),被问了几次后心虚的不行,平然平时 ...

随机推荐

  1. lua学习笔记(十二)

    弱引用table     lua使用自动内存管理机制,通过垃圾回收器来回收内存     垃圾回收器只能回收它认为是垃圾的内容,而不能回收用户认为是垃圾的内容     典型的例子栈,栈一般用一个数组和一 ...

  2. executable null\bin\winutils.exe in the Hadoop binaries.

    在windows 使用eclipse远程调用hadoop集群时抛出下面异常 executable null\bin\winutils.exe in the Hadoop binaries. 这个问题 ...

  3. protobuf编译安装

    为什么选择protobuf,而不选择thift和avro,原因大概几点吧,网上对比的文章很多,我主要关注以下几点 1.protobuf序列化性能最好,序列化后字节数最少. 2.protobuf是单纯的 ...

  4. ubuntu防火墙 ufw配置

    https://www.cnblogs.com/ylan2009/articles/2321136.html

  5. JQ 修改样式

    //获取当前的url var url=document.location.href; var url_cn='http://www.macau-airport.com/cn/our-business/ ...

  6. Nginx+tomcat集群中,session的共享

    nginx,tomcat集群后多个session分配到同一个应用 单节点低负荷的情况下,我们通常把一个WEB应用打成WAR包放WEB应用服务器,如TOMCAT下运行就行了(如图1).但随着用户量的增加 ...

  7. python基础-------python2.7教程学习【廖雪峰版】(二)

    2017年6月7日14:59:27任务:    看完python基础1.计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文 ...

  8. python 基础 9.11 更改数据

    #/usr/bin/python #-*- coding:utf-8 -*- #@Time   :2017/11/24 4:45 #@Auther :liuzhenchuan #@File   :更改 ...

  9. 摘要: CentOS 6.5搭建Redis3.2.8伪分布式集群

    from https://my.oschina.net/ososchina/blog/856678     摘要: CentOS 6.5搭建Redis3.2.8伪分布式集群 前言 最近在服务器上搭建了 ...

  10. ural 1303 Minimal Coverage【贪心】

    链接: http://acm.timus.ru/problem.aspx?space=1&num=1303 http://acm.hust.edu.cn/vjudge/contest/view ...