css 采集下载
软件应用范围: 看到喜欢的网页,另存为的话,并不能直接保存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 {西游记动画片搞笑
}http://www.huiyi8.com/gaoxiaodonghua/xiyouji/
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 采集下载的更多相关文章
- CSS Spritec下载,精灵图,雪碧图,初探之原理、使用
CSS Spritec下载,精灵图,雪碧图,初探之原理.使用 关于CSS Sprite CSSSprites在国内很多人叫css精灵雪碧图,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零 ...
- 爬虫入门【11】Pyspider框架入门—使用HTML和CSS选择器下载小说
开始之前 首先我们要安装好pyspider,可以参考上一篇文章. 从一个web页面抓取信息的过程包括: 1.找到页面上包含的URL信息,这个url包含我们想要的信息 2.通过HTTP来获取页面内容 3 ...
- js、css引用文件的下载方式
js.css引用文件的下载方式 一.测试(chrome):1.直接使用<script...>.<link...>标签来混合引入脚本文件和css文件, <script as ...
- 常用CSS优化总结——网络性能与语法性能建议
在前端面试中最常见的问题就是页面优化和缓存(貌似也是页面优化),被问了几次后心虚的不行,平然平时多少会用到一些,但突然问我,很难把自己知道的都说出来.页面优化明显不是一两句能够说完的,这两天总结了一下 ...
- html/css基础篇——link和@inport详解以及脚本执行顺序探讨
先说一说两者之间的异同 两者都可以引用外部CSS的方式,现在主流浏览器两者都支持(ps:@import是CSS2.1提出的),但是存在一定的区别: 1.link是XHTML标签,除了加载CSS外,还可 ...
- 动画库Animate.css
笔记分享: 用法:到官网(http://daneden.github.io/animate.css/),下载animate.min.css文件.点击这里 1.首先引入animate css文件 < ...
- JS 和 CSS 的位置对其他资源加载顺序的影响
JS 和 CSS 在页面中的位置,会影响其他资源(指 img 等非 js 和 css 资源)的加载顺序,究其原因,有三个值得注意的点: JS 有可能会修改 DOM. 典型的,可能会有 document ...
- JAVA多线程下载网络文件
JAVA多线程下载网络文件,开启多个线程,同时下载网络文件. 源码如下:(点击下载 MultiThreadDownload.java) import java.io.InputStream; im ...
- (转)常用CSS优化总结——网络性能与语法性能建议
原文地址:http://www.cnblogs.com/dolphinX/p/3508657.html 在前端面试中最常见的问题就是页面优化和缓存(貌似也是页面优化),被问了几次后心虚的不行,平然平时 ...
随机推荐
- 基于vue + axios + lrz.js 微信端图片压缩上传
业务场景 微信端项目是基于Vux + Axios构建的,关于图片上传的业务场景有以下几点需求: 1.单张图片上传(如个人头像,实名认证等业务) 2.多张图片上传(如某类工单记录) 3.上传图片时期望能 ...
- ES 31 - 从0开始搭建Elasticsearch生产集群
目录 1 配置环境 1.1 服务器IP映射 1.2 配置各节点的ssh免密通信 1.3 安装JDK并配置环境变量 2 部署单节点服务 3 部署集群服务 4 启动集群中的所有节点 4.2 启动各个节点中 ...
- Monkey源代码分析之事件源
上一篇文章<Monkey源代码分析之执行流程>给出了monkey执行的整个流程.让我们有一个概貌,那么往后的文章我们会尝试进一步的阐述相关的一些知识点. 这里先把整个monkey类的结构图 ...
- Java中常用的加密算法MD5,SHA,RSA
1. MD5加密,常用于加密用户名密码,当用户验证时. protected byte[] encrypt(byte[] obj){ try { MessageDigest md5 = Messag ...
- PHP性能:序——谈ab(Apache Bench)压力测试工具
PHP性能:序——谈ab(Apache Bench)压力测试工具 ab(Apache Bench)是啥? ab是Apache自带的一个压力测试软件,可以通过ab命令和选项对某个URL进行压力测试.a ...
- 嵌入式驱动开发之sensor---"VIP0 PortA", "VIP0 PortB", "VIP1 PortA", "VIP1 PortB",dvo0(vout1) dvo1(vout0)
(1)vip 简介 (2)vip 电路图 (3)vip 更换采集相机输入 (4)vip 驱动 ---------------------author:pkf --------------------- ...
- 文件大小转换(b,kb,M,GB/TB)
//转换单位 setupSize(1111111111111); function setupSize($fileSize) { $size = sprintf("%u", $fi ...
- POJ3468_A Simple Problem with Integers(线段树/成段更新)
解题报告 题意: 略 思路: 线段树成段更新,区间求和. #include <iostream> #include <cstring> #include <cstdio& ...
- Swift开发教程--怎样设置状态栏的文字颜色
第一步:在Info.plist中设置UIViewControllerBasedStatusBarAppearance 为NO 第二步:在viewDidLoad中加一句 UIApplication.sh ...
- python(pytest)+allure+jenkins 实现接口自动化的思路
效果图镇楼: 上述各模块作用: python(pytest): 1:用于读测试用例(本次用例写在csv文件中) 2:环境配置相关 3:提取1中的测试数据,组成请求体 4:发送请求 5:获取结果 6:断 ...