Python下载prettyloaded的swf

时间:2022-06-14
本文章向大家介绍Python下载prettyloaded的swf,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

以前看到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是自己下班后随便看了一些,研究的不多,也不常用它(代码可能写的并不规范,但它能满足我自己的需求^_^)

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盘就能看到下载的文件了: