以前看到prettyloaded上面的loading条都很不错,最近又有需要用到loading条,怎奈它并不提供直接打包下载,只好自己写程序去抓取了…
访问:http://www.prettyloaded.com/ ,用httwatch可以分析出它的swf配置文件是这个地址:http://www.prettyloaded.com/php/getAllLoadersAsXMLList.php
另存为xml,名字就随便了,保存路径最好不要有中文。
因为要使用pyton来处理,首先是机器上要装有python的环境,代码编辑器就随便了(用着顺手的都行,我用的是editPlus)…
有几点是在写代码中遇到的问题,还有几点是有等解决的问题:
1、下载地址后面要带上随机数,用来请求最新的文件
2、找到下载文件的地址是如此拼接起来了
3、解析xml的处理(使用google搜索老半天,最后还是直接看官方文档解决了问题) xml.etree.ElementTree
4、对路径的处理,先判断路径是否存在,不存在先创建目录
5、代码暂时不支持多线程下载,有空再好好更新一下
下面是代码了,python是自己下班后随便看了一些,研究的不多,也不常用它(代码可能写的并不规范,但它能满足我自己的需求^_^)
代码语言:javascript复制1: # -*- coding: utf-8 -*-
2: """
3: Created on Sat Dec 11 15:05:51 2010
4:
5: @author: ZhangYi
6: """
7: from xml.etree import ElementTree
8: import time, urllib, os
9:
10:
11: def load_xml_file(fileName):
12: root = ElementTree.parse(fileName,None).getroot();
13:
14: items = root.findall("preloaders/preloader")
15:
16: #string.atoi(s,[,base]) //base为进制基数
17:
18: for temp_item in items:
19: swf_name = temp_item.get("swf")
20: now_date = str(time.time())
21:
22: swf_url = "http://www.prettyloaded.com/swf/" swf_name "?cachebuster=" now_date
23:
24: print 'read request url is : ' swf_url ' begin down...'
25:
26: load_swf_file(swf_url, swf_name)
27:
28: break
29:
30:
31: def load_swf_file(swfUrl, swfName):
32: sava_dir_path = 'd:\test\'
33: save_path = sava_dir_path swfName
34:
35: #如果目录不存在,则先创建目录
36: if os.path.exists(sava_dir_path) == False:
37: os.mkdir(sava_dir_path)
38:
39: #如果文件存在则先删除文件
40: if os.path.isfile(save_path) == True:
41: os.remove(save_path)
42:
43: #第一种方法
44: #swf_url = swfUrl
45: #swf_data = urllib.urlopen(swf_url).read()
46: #swf_file = file(save_path, 'wb')
47: #swf_file.write(swf_data)
48: #swf_file.close()
49:
50: #另一种方法
51: urllib.urlretrieve(swfUrl, save_path)
52:
53: print swfUrl ' down end...'
54:
55: if __name__ == "__main__":
56: url = 'C:/pythonApp/swf_list.xml'
57: load_xml_file(url)
这样我在D盘就能看到下载的文件了: