導包
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)