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 相关文章推荐
rhythmbox中文名乱码问题解决方法
Sep 06 Python
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
Apr 25 Python
Python3遍历目录树实现方法
May 22 Python
Python的mysql数据库的更新如何实现
Jul 31 Python
django创建自定义模板处理器的实例详解
Aug 14 Python
Django基础知识与基本应用入门教程
Jul 20 Python
对python3中pathlib库的Path类的使用详解
Oct 14 Python
Python爬虫 bilibili视频弹幕提取过程详解
Jul 31 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
利用python计算时间差(返回天数)
Sep 07 Python
Python爬取豆瓣视频信息代码实例
Nov 16 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 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之第九天
2006/10/09 PHP
php实现rc4加密算法代码
2012/04/25 PHP
浅谈php的优缺点
2015/07/14 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
如何编写jquery插件
2017/03/29 jQuery
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
2017/12/12 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
Python利用递归实现文件的复制方法
2018/10/27 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
Mytheresa美国官网:德国知名的女性奢侈品电商
2017/05/27 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
党员干部公开承诺书
2014/03/26 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
2014企业年终工作总结
2014/12/23 职场文书
营运督导岗位职责
2015/04/10 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis
MySQL 重写查询语句的三种策略
2021/05/10 MySQL
python字符串的多行输出的实例详解
2021/06/08 Python