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动态类型的学习---引用的理解
- 垃圾邮件过滤器 python简单实现
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- Python,Flex 2和Aptana[js开放工具]
- 国外开发者谈为何放弃PHP而改用Python
- 利用webqq协议使用python登录qq发消息源码参考
- python 判断自定义对象类型
- 让python的Cookie.py模块支持冒号做key的方法
- Python 面向对象 成员的访问约束
- 新手该如何学python怎么学好python?
- Python linecache.getline()读取文件中特定一行的脚本