美文网首页程序员
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