zoukankan      html  css  js  c++  java
  • Python下载prettyloaded的swf

    以前看到prettyloaded上面的loading条都很不错,最近又有需要用到loading条,怎奈它并不提供直接打包下载,只好自己写程序去抓取了…

    访问:http://www.prettyloaded.com/ ,用httwatch可以分析出它的swf配置文件是这个地址:http://www.prettyloaded.com/php/getAllLoadersAsXMLList.php

    image

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

    image

  • 相关阅读:
    经常让程序员恼火的一些事情你是否也遇到过一些?
    CRC文件解压缩问题
    你在淘宝买件东西背后的复杂技术 技术普及帖
    程序员需要戒骄戒躁
    IT路上的应该注意自我规划 学习规划与自我修炼
    腾讯,我最恨别人用枪顶着我的头(转)
    软件管理,软件生命周期,软件过程名词解释
    程序员需要掌握的最终技术是什么? “终极技术”:应对困境的方法和信念
    程序员如何缓解“电脑病”
    新浪微博XSS攻击事件
  • 原文地址:https://www.cnblogs.com/meteoric_cry/p/1988507.html
Copyright © 2011-2022 走看看