Python自动下载百度音乐分类

[python]
#-*- coding: utf-8 -*-
import urllib
import re
from Api_tieba import tieba
class BaiduMusic:
def __init__(self, key_words, rate=0, start_num=0, end_num=1000):
if rate>0:
self.tieba=tieba()
self.tieba.login_init("xx", "xx")
self.tieba.login()
self.search_url="http://music.baidu.com/search/tag?key="+str(key_words)
self.base_url="http://music.baidu.com"
self.start_num=start_num
self.end_num=end_num
self.rate=rate
self.run()
def run(self):
for i in range(self.start_num/20, self.end_num/20):
url=self.search_url+"&start="+str(i*20)+"&size=20"
html = urllib.urlopen(url).read()
uri = re.findall(r’/song/d+’, html, re.M)
lst = []
for i in uri:
link =self. base_url+i+"/download"
lst.insert(0, link)
lst.reverse()
for k in lst:
if self.rate>0:
res = self.tieba.urlopen(k)
else:
res=urllib.urlopen(k).read()

down= re.findall(r’http:.+\/music\/.+[0-9a-z]’ ,res, flags=0)
print down
down_url=down[self.rate].replace("\", "")

s1 = re.search(‘title=".*’,res, re.M).group()
s2 = re.search(‘>.*<.a’, s1, re.M).group()
s3 = s2[1:-3]

if self.rate==0:
s3=unicode(s3,"utf-8","ignore").encode("gb2312","ignore")
print s3
urllib.urlretrieve(down_url, "music\"+s3+".mp3")
[/python]