# coding:utf-8
import urllib2
import re
import urllib
import chardet
from json import *
category = \'经典老歌\'
url = \'http://music.baidu.com/tag/\' + category
url_songs = \'http://play.baidu.com/data/music/songlink\'
try:
request = urllib2.Request(url)
response = urllib2.urlopen(request)
content = response.read()
patt_str = \'<li data-songitem = \\'{"songItem":{"sid":(.*?),.*?</li>\'
pattern = re.compile(patt_str,re.S)
songIds = re.findall(pattern,content)
#for songId in songIds:
#print songIds
formdata = {"songIds":",".join(songIds)}
#print formdata
data_encoded = urllib.urlencode(formdata)
songList = urllib2.urlopen(url_songs,data_encoded)
songListJson = songList.read()
#print songListJson
song_dict = JSONDecoder().decode(songListJson)
#print song_dict
song_data_dict = song_dict.get(\'data\').get(\'songList\')
for sond_data in song_data_dict:
song_name = sond_data.get(\'songName\')
song_artistName = sond_data.get(\'artistName\')
song_format = sond_data.get(\'format\')
song_link = sond_data.get(\'songLink\')
#print song_name+\'--\'+song_artistName+\'.\'+song_format+u\' 下载链接为:\'+song_link
music = urllib.urlopen(song_link).read()
open(song_name+\'.mp3\',\'w\').write(music)
except urllib2.URLError,e:
if hasattr(e,"code"):
print e.code
if hasattr(e,"reason"):
print e.reason