只能获取 免费的专辑,收费的专辑只能获取标题,你可以试试默认的地址,是可以获取地址并下载的
.版本 2
.支持库 iext
清除数组 (标题组)
清除数组 (地址组)
超级列表框_音频列表.全部删除 ()
专辑URL = 编辑框_URL.内容
成员数 = 文本_分割文本 (专辑URL, “/”, , 文本数组)
.如果 (成员数 < 1)
信息框 (“专辑链接为空 或 专辑未找到!”, #错误图标, “错误”, )
.否则
专辑ID = 文本数组 [成员数]
源码 = 编码_URL解码 (网页_取网页源码 (“https://m.ximalaya.com/m-revision/common/album/queryAlbumTrackRecordsByPage?albumId=” + 专辑ID + “&page=1&pageSize=2&asc=true”), 真)
' 提取所需的Json属性
json.解析 (源码)
条目总数 = json.取通用属性 (“data.totalCount”)
列表标题.标题 = “音频列表(共” + 条目总数 + “个):”
' 网站设置了最大100条/页,多余100条须分页取得数据
商 = 到小数 (条目总数) \ 100
余数 = 到小数 (条目总数) % 100
.计次循环首 (商 + 1, 计次)
源码 = 编码_URL解码 (网页_取网页源码 (“https://m.ximalaya.com/m-revision/common/album/queryAlbumTrackRecordsByPage?albumId=” + 专辑ID + “&page=” + 到文本 (计次) + “&pageSize=100&asc=true”), 真)
.如果 (json.解析 (源码))
' 多余1页的,除最后1页的条数是余数,其他都是100条
.如果 (计次 < 商 + 1)
次数 = 100
.否则
次数 = 余数
.如果结束
.计次循环首 (次数, i)
' 按页取标题和下载地址,存入数组
temp = “data.trackDetailInfos[” + 到文本 (i - 1) + “].trackInfo.title”
加入成员 (标题组, json.取通用属性 (temp))
temp = “data.trackDetailInfos[” + 到文本 (i - 1) + “].trackInfo.playPath”
加入成员 (地址组, json.取通用属性 (temp))
' 加入列表框,方便查看
' 位置索引 = 超级列表框_音频列表.插入表项 (, 到文本 ((计次 - 1) × 100 + i), , , , )
位置索引 = 超级列表框_音频列表.插入表项 (, 到文本 (到小数 (条目总数) - (计次 - 1) × 100 - i + 1), , , , )
超级列表框_音频列表.置标题 (位置索引, 1, 标题组 [位置索引 + 1])
超级列表框_音频列表.置标题 (位置索引, 2, 地址组 [位置索引 + 1])
' 调试输出 (条目总数, i, temp, 标题组 [位置索引 + 1], 取数组成员数 (标题组))
.计次循环尾 ()
.否则
信息框 (“网页Json数据格式不正确!”, 16, “信息”, )
.如果结束
.计次循环尾 ()
.如果结束
' 调试输出 (地址组)