from requests_html import HTMLSession
from fake_useragent import UserAgent
import os
import re
class Pa:
def __init__(self):
self.session = HTMLSession()
self.singer=input('想听谁的歌呀:')
self.page=3
self.start_url=' '
self.os_path = os.getcwd() + f'/{self.singer}/'
self.headers={
'Cookie': '_ga=GA1.2.387593542.1617107630; _gid=GA1.2.1534665002.1617107630; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1617107630,1617109657; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1617110185; kw_token=QUE6LY91RKT',
'csrf': 'QUE6LY91RKT',
'Host': 'www.kuwo.cn',
'Referer': 'http://www.kuwo.cn/search/list?key=%E5%91%A8%E6%9D%B0%E4%BC%A6',
'User-Agent': UserAgent().chrome
}
def get_response(self,start_url,page):
start_url=f'http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={self.singer}&pn={page}&rn=30&httpsStatus=1&reqId=f0830500-9158-11eb-b0a1-83f9d69777f7'
response = self.session.get(start_url, headers=self.headers).json()
response_list = response['data']['list']
return response_list
def save_songs(self):
for i in range(1,self.page+1):
for data in self.get_response(self.start_url,i):
rid = data['rid']
title = data['name']
next_url = f'http://www.kuwo.cn/url?format=mp3&rid={rid}&response=url&type=convert_url3&br=128kmp3&from=web&t=1617022552625&httpsStatus=1&reqId=17ef8120-908e-11eb-88c0-2360ee4180ff'
resp = self.session.get(next_url, headers=self.headers).json()
mp3_url = resp['url']
data = self.session.get(mp3_url).content
if not os.path.exists(self.os_path):
os.mkdir(self.os_path)
with open(self.os_path + ''.join(re.findall('[^\/:?"<>|]',title)) + '.m4a', 'wb')as f:
f.write(data)
print(f'{title}====下载完成----!!!')
if __name__ == '__main__':
a=Pa()
a.save_songs()