(python)下载喜马拉雅电台的音频
2015-12-05 20:10
591 查看
上一篇文章讲了如何分析,寻找视频的下载链接。其实获取喜马拉雅电台音频的链接方式也是如此,通过chrome的Network调试工具去寻找页面链接与下载链接之间的关系。
一点一点的分析,发现第一行和最后一行,一个是.json一个是.m4a,好了,发现了,点开.json的链接,是一个json字符串,而且我们想要的音频下载链接就在里面
第一步:分析页面源码
直接pass了,源码中没有音频的下载链接,当然有的网站是有的,比如荔枝FM,有的话直接解析就好了,没有话,就看下一步了第二步:chrome调试
打开chrome调试工具,逐一分析打开音频之后的网络请求和结果,以http://www.ximalaya.com/24137038/sound/10484545为例:一点一点的分析,发现第一行和最后一行,一个是.json一个是.m4a,好了,发现了,点开.json的链接,是一个json字符串,而且我们想要的音频下载链接就在里面
第三步:总结
通过http://www.ximalaya.com/24137038/sound/10484545 获取http://www.ximalaya.com/tracks/10484545.json中的json字符串,解析字符串就可以获取音频的下载链接了,这个两个链接之间的关系,一眼就应该能看出来吧源码
#coding=utf-8 import os import urllib import sys import json sys.path.append("..") import common class Xmly(): URL_PRIFIX = "http://www.ximalaya.com/tracks/" def getJsonUrl(self,url): result = url.split('/') return result[len(result)-1]+".json" def getVoiceUrl(self,html): # print html jsonStr = json.loads(html) return jsonStr["title"].encode('utf-8'),jsonStr["play_path"] def download(self,url,filepath): jsonUrl = self.URL_PRIFIX + self.getJsonUrl(url) html = common.getHtml(jsonUrl) voiceTitle,voiceUrl = self.getVoiceUrl(html) common.download(voiceUrl,filepath,voiceTitle+'.m4a') if __name__ == '__main__': url = "http://www.ximalaya.com/13163945/sound/10499951" xmly = Xmly() xmly.download(url,"/Users/cheng/Documents/PyScript/res/")
相关文章推荐
- 5.1.7 timezone对象
- Python将时间为AM的转换为24小时制
- python,random.random()和random.Random()的区别联系
- 实现Python str.split功能的小函数
- python读取图像
- Python爬虫进阶一之爬虫框架Scrapy安装配置
- 定义 Model兼容python2.x和python3.x
- Mac 环境下下配置opencv +python
- python 字符串与16进制互转
- 通过python的obbc模块连接mysql数据库
- Climbing Stairs-python
- Python火车票代码
- Python 异常处理
- Python 文件I/O
- Python 模块
- Python函数
- Python 日期和时间
- Python 字典(Dictionary)
- Python 元组
- 【Python】Python 三种导入模块的方法和区别