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盘就能看到下载的文件了:
- Windows下RabbitMQ安装及入门
- 计算机视觉任务:图像梯度和图像完成
- Yarn【label-based scheduling】实战总结(一)
- 配置sonarqube+maven
- Yarn【label-based scheduling】实战总结(二)
- HDFS学习:HDFS机架感知与副本放置策略
- spring cloud 报错Error creating bean with name 'hystrixCommandAspect' ,解决方案
- Spring Security OAuth2 Demo
- SpringBoot学习:整合shiro(身份认证和权限认证),使用EhCache缓存
- 线性回归与最小二乘法 | 机器学习笔记
- 添加sqljdbc4的maven依赖
- MyBatis 实现关联表查询
- 数据结构 | 栈
- mybatis 针对SQL Server 的 主键id生成策略
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP判断是否微信访问的方法示例
- Pytorch损失函数nn.NLLLoss2d()用法说明
- python实现学生成绩测评系统
- Python dict的常用方法示例代码
- Scrapy模拟登录赶集网的实现代码
- opencv 图像腐蚀和图像膨胀的实现
- PHP实现微信退款的方法示例
- 基于Python和C++实现删除链表的节点
- python让函数不返回结果的方法
- PHP微商城开源代码实例
- PHP小程序支付功能完整版【基于thinkPHP】
- CodeIgniter框架实现的整合Smarty引擎DEMO示例
- PHP微信支付功能示例
- PHP中ltrim()函数的用法与实例讲解
- Laravel 中创建 Zip 压缩文件并提供下载的实现方法