您的位置:首页 > 编程语言 > Python开发

python获取百度fm内容生成lst文件

2014-01-02 09:00 495 查看
呃,不加字不行。。
# -*- coding: cp936 -*-
import urllib2
import json
import os
import time

def channells():
html = urllib2.urlopen('http://fm.baidu.com').read()
start = html.find("{", html.find("rawChannelList"))
end = html.find(";", start)
listjson = html[start:end].strip()   #获取rawChannelList部分

data = json.loads(listjson)
clist = []
for item in data['channel_list']:
clist.append(item['channel_id'])  #获取channel_id

for name in clist:
songls(name)

def songls(clist): #获取channellist
temp = 'http://fm.baidu.com/dev/api/?tn=playlist&format=json&id=' + clist
#    curl.append(temp)

songid(temp,clist) #更改换歌曲风格

def songid(i,name):  #打开clist,并读取songid, 仅读取了curl列表里的第一个,可以更改
sid = []
name = name
idhtml = urllib2.urlopen(i).read()
iddata = json.loads(idhtml)
for iditem in iddata['list']:
sid.append(iditem['id'])
surl(sid,name)

def surl(sid,name):  #生成并保存songid链接
surl = []
name = name
for j in sid:
temp = 'http://music.baidu.com/data/music/fmlink?type=mp3&rate=320&songIds=' + str(j)
surl.append(temp)
songl(surl,name)

def songl(surl,name): #查找songlink歌曲真实链接,然后print出来或者mplayer等流媒体播放器边下边播
sl = []
name =name
for i in surl:

slhtml = urllib2.urlopen(i).read()
sldata = json.loads(slhtml)
for item in sldata['data']['songList']:
sl.append(item['songLink'])
write(sl,name)

def write(sl,name):
#    print sl
f = file( '%s.lst'  %name ,'w' )
for i in sl:
f.write('%s\n' %i)
f.close()

if __name__ == '__main__':
channells()



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