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实现二分查找算法实例
May 26 Python
Python中pow()和math.pow()函数用法示例
Feb 11 Python
Python  unittest单元测试框架的使用
Sep 08 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
python实现两张图片的像素融合
Feb 23 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
May 10 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
Python @property装饰器原理解析
Jan 22 Python
python实现五子棋程序
Apr 24 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 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
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
学习php过程中的一些注意点的总结
2013/10/25 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
常用的javascript function代码
2008/05/23 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
js获取form的方法
2015/05/06 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
python通过索引遍历列表的方法
2015/05/04 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
蒂娜商店:Tiina the Store
2019/12/07 全球购物
几道PHP的面试题
2012/05/19 面试题
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
个人简历自我评价
2014/01/06 职场文书
4s店活动策划方案
2014/08/25 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书