python使用urllib模块开发的多线程豆瓣小站mp3下载器


Posted in Python onJanuary 16, 2014
#! /usr/bin/python2.7
# -- coding:utf-8 --
import os, urllib,urllib2, thread,threading
import re
#匹配音乐url
reg=re.compile('{"name":"(.+?)".+?"rawUrl":"(.+?)",.+?}', re.I)

class downloader(threading.Thread):
        def __init__(self, url, name):
                threading.Thread.__init__(self)
                self.url=url
                self.name=name
        def run(self):
                print 'downloading from %s' % self.url
                urllib.urlretrieve(self.url, self.name)
threads=[]
#多线程下载文件
def main(url):
        response=urllib.urlopen(url)
        text=response.read()
        groups=re.finditer(reg, text)
        for g in groups:
                name=g.group(1).strip() + ".mp3"
                path=g.group(2).replace('\\', '')
                t=downloader(path, name)
                threads.append(t)
                t.start()
                                                                                                                                                      
if __name__ == '__main__':
        main("http://site.douban.com/huazhou/")
        for t in threads:
                t.join()
Python 相关文章推荐
Python判断直线和矩形是否相交的方法
Jul 14 Python
Python中py文件引用另一个py文件变量的方法
Apr 29 Python
python求最大连续子数组的和
Jul 07 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
使用python对多个txt文件中的数据进行筛选的方法
Jul 10 Python
Python求解正态分布置信区间教程
Nov 20 Python
python3中rank函数的用法
Nov 27 Python
Django ValuesQuerySet转json方式
Mar 16 Python
简单了解Python多态与属性运行原理
Jun 15 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
Python使用pycharm导入pymysql教程
Sep 16 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 Python
python使用urllib模块和pyquery实现阿里巴巴排名查询
Jan 16 #Python
python3.3教程之模拟百度登陆代码分享
Jan 16 #Python
python解析发往本机的数据包示例 (解析数据包)
Jan 16 #Python
python多线程扫描端口示例
Jan 16 #Python
python发送arp欺骗攻击代码分析
Jan 16 #Python
分析python服务器拒绝服务攻击代码
Jan 16 #Python
python获取豆瓣电影简介代码分享
Jan 16 #Python
You might like
Windows下安装Memcached的步骤说明
2010/04/25 PHP
PHP多例模式介绍
2013/06/24 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
围观tangram js库
2010/12/28 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
python将txt文件读取为字典的示例
2018/12/22 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
Python ini文件常用操作方法解析
2020/04/26 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
Python容器类型公共方法总结
2020/08/19 Python
处理textarea中的换行和空格
2019/12/12 HTML / CSS
大学生简短的自我评价分享
2014/02/20 职场文书
法制宣传日活动总结
2014/04/29 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android