您的位置:首页 > 其它

使用gevent多线程下载豆瓣音乐 - 李少宏 - 博客园

2013-01-05 09:12 176 查看
使用gevent多线程下载豆瓣音乐 - 李少宏 - 博客园

使用gevent多线程下载豆瓣音乐感觉自己写的gevent下载音乐比迅雷快很多,话不多说,直接上代码。


#! /usr/bin/python2.7
# -- coding:utf-8 --

import urllib,urllib2,gevent,re
from gevent import monkey

monkey.patch_all()

def worker(reg, url):
response=urllib.urlopen(url)
text=response.read()
groups=re.finditer(reg, text)
m_arr = []
for g in groups:
name=g.group(1).strip() + ".mp3"
path=g.group(2).replace('\\', '')
m_arr.append((name, path))
return m_arr

def grun(path, name):
urllib.urlretrieve(path, name)

if __name__ == '__main__':
#匹配音乐url
reg=re.compile('{"name":"(.+?)".+?"rawUrl":"(.+?)",.+?}', re.I)
musicArray = worker(reg, "http://site.douban.com/huazhou/")
jobs = []
for (name, path) in musicArray:
jobs.append(gevent.spawn(grun, path, name))
gevent.joinall(jobs)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: