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操作json数据的一个简单例子
Apr 17 Python
仅用500行Python代码实现一个英文解析器的教程
Apr 02 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
解决Matplotlib图表不能在Pycharm中显示的问题
May 24 Python
使用Python对微信好友进行数据分析
Jun 27 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
Mar 18 Python
Python使用random模块生成随机数操作实例详解
Sep 17 Python
sklearn-SVC实现与类参数详解
Dec 10 Python
在keras里实现自定义上采样层
Jun 28 Python
python中字典增加和删除使用方法
Sep 30 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
一棵php的类树(支持无限分类)
2006/10/09 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
详解php实现页面静态化原理
2017/06/21 PHP
通过源码解析Laravel的依赖注入
2018/01/22 PHP
JavaScript中Array 对象相关的几个方法
2006/12/22 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
JS从数组中随机取出几个数组元素的方法
2016/08/02 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
微信小程序之多文件下载的简单封装示例
2018/01/29 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
vue集成百度UEditor富文本编辑器使用教程
2018/09/21 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
jQuery HTML设置内容和属性操作实例分析
2020/05/20 jQuery
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
详解python中的数据类型和控制流
2019/08/08 Python
Stuart Weitzman美国官网:美国奢华鞋履品牌
2016/08/18 全球购物
Chemist Warehouse官方海外旗舰店:澳洲第一连锁大药房
2017/08/25 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
公司周年庆活动方案
2014/08/25 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
写给同事的离职感言
2015/08/04 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
nginx中proxy_pass各种用法详解
2021/11/07 Servers