美文网首页程序员
Java爬取喜马拉雅非付费音频

Java爬取喜马拉雅非付费音频

作者: 码农先生 | 来源:发表于2019-01-10 22:09 被阅读29次

    前言

    因为很喜欢喜马拉雅FM上的音频节目,之前也找过一些喜马拉雅音频下载器。可能是因为网站调整,有些下载器慢慢出现了问题,估计是有些地址解析不了了,于是就想着研究一下喜马拉雅FM的请求方法,利用java去模拟请求,做一个自己的小工具玩玩~

    下面就开始研究喜马拉雅FM的请求方式吧!

    1 打开喜马拉雅网站并搜索一个节目

    喜马拉雅FM

    这里的节目例子以我很喜欢的《首席医官》为例

    喜马拉雅首页 首席医官 首席医官首页

    2 研究其数据来源,获取分页数据

    打开浏览器控制台,清空Network下的日志

    谷歌浏览器控制台

    点击任何一页,查看Network下的日志

    分页列表 请求链接 分页数据信息

    从上面两幅图可以看出,分页的数据来自于请求:

    https://www.ximalaya.com/revision/album?albumId=3071659

    解析其返回的json数据便可以拿到分页信息

    3 获取列表信息

    在上面那个控制台中,还有一个请求可以看到列表信息

    列表信息请求

    列表信息请求数据

    从上面的请求中可以拿到每一则音频的基本信息

    4 获取音频下载地址

    清空浏览器控制台,点击任何一个音频,查看Network的地址

    播放其中任意一个音频 音频下载地址请求 音频下载地址请求数据

    从这个请求中,我们也可以拿到列表信息,并且可以拿到音频的下载地址

    5 核心代码

    Java实现爬取喜马拉雅音频文件(非付费)

    代码都是最基本的,之后有时间会对其进行优化,比如加入多线程下载、图形化界面、断点续传等,欢迎感兴趣的童鞋来博客或GitHub提意见_

    有时间大家可以尝试做个前端版本,利用ajax请求,自己设计页面,这样相当于做了一个喜马拉雅FM免费音频的搜索引擎,从浏览器上直接搜索并下载_,到时候一起分享嘛~

    6 基本使用

    主函数如下

        public static void main(String[] args){
    
            //初始化音频列表,修改专辑ID便可下载该专辑的音频内容(非付费)
            AudioBean audioBean = AudioDealUtil.initBean(
                    "https://www.ximalaya.com/revision/album",
                    "albumId=3071659");
    
            //修改下载路径
            AudioDealUtil.initDownloadAudio("https://www.ximalaya.com/revision/play/album",
                    audioBean,
                    "D://download//");
    
        }
    

    只要改变专辑ID和本地路径便可以下载音频啦~

    Eclipse运行情况

    我的CSDN传送门

    简书的小伙伴们,一起加油啦~

    相关文章

      网友评论

        本文标题:Java爬取喜马拉雅非付费音频

        本文链接:https://www.haomeiwen.com/subject/nouzrqtx.html