导包
import json,os
from piaot import *
from multiprocessing import Pool
def pqxs(shu=1):
# 循环页数
for i in range(1,shu+1):
# 需要查询手动输入链接地址
url="http://www.ximalaya.com/revision/album/getTracksList?albumId=12642314&pageNum="+str(i)
# 调用了自定义包(开启代理和隐藏html头,返回2进制)
req=yc(url)
# 进行转码
req=req.decode('utf-8')
# 进行json解码
html=json.loads(req)
# 在返回的值里找到需要的数据
a=html['data']['tracks']
q=Pool(4)
# 进行循环遍历
for i in a:
# 找到了每个小说的名称
v=i['title']
# 将值里取出后面的id编号(id为每个音频的连接条件)
x=i['url'].split('/')[-1]
# 将值里的《》标点符号去掉
name = v.split('》')
name = name[0].split('《')
name=name[1]
# 存储路径
b = 'C:/Users/黑神/Desktop/pc_zy/喜马拉雅/' + name
# 判断当前路径是否存在,没有则创建文件夹
if not os.path.exists(b):
print('正在创建文件夹:路径C:/Users/黑神/Desktop/pc_zy/'+name+'/')
# 执行存储
os.makedirs(b)
print('创建成功....')
# 音频链接地址
url_xs = 'https://www.ximalaya.com/revision/play/tracks?trackIds='+str(x)
# 音频存放的路径
dz=b+'/'+v+'.m4a'
print(v+'音频下载中.............')
try:
# 多进程下载
zhi = q.apply_async(yc,(url_xs,))
# 保存到文件
with open(dz, 'wb') as f:
f.write(zhi.get())
print('(^-^)OK')
except:
print('( T _ T )NO')
if name == ‘main‘:
# 页数
pqxs(1)