import json from tqdm import tqdm import requests import jsonpath artist_name = input("请输入歌手名字:") url = 'https://wapi.kuwo.cn/api/www/search/searchArtistBykeyWord?key=' + artist_name + '&pn=1&rn=30&httpsStatus=1&reqId=64126310-1a70-11ee-847f-adad9baea72d&plat=web_www&from=' # print(url) headers = { "Cookie": "_ga=GA1.2.2021007609.1602479334; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1602479334,1602673632; _gid=GA1.2.168402150.1602673633; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1602673824; kw_token=5LER5W4ZD1C", "csrf": "5LER5W4ZD1C", "Referer": "{}", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36", } resp = requests.get(url, headers=headers) # print(resp.text) artist_dict = json.loads(resp.text) name_list = artist_dict['data']['list'] # 获取与搜索名字相关的歌手列表 # print(name_list[0]['name']) # print(name_list) i = 0 list = [] # 将字符串转换成列表 for item in name_list: num = i + 1 i = num # print(num, f"{item['name']}, {item['id']}") auther_url = 'http://www.kuwo.cn/search/list?key=' + f"{item['name']}" # print(auther_url) list.append(auther_url) # http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key=NINEONE&pn=1&rn=20&httpsStatus=1&reqId=c13577c0-1adf-11ee-ae29-978b59229e55&plat=web_www&from= # singer_url = 'http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key='+f"{name_list[0]['name']}"+'&pn=1&rn=20&httpsStatus=1&reqId=c13577c0-1adf-11ee-ae29-978b59229e55&plat=web_www&from=' # singer_url = 'http://www.kuwo.cn/search/list?key=' + f"{name_list[0]['name']}" # print(list) print("歌手名字是:"f"{name_list[0]['name']}") # print("歌手id是:"f"{name_list[0]['id']}") # 拼接,默认获取第一个 singer_url = 'http://www.kuwo.cn/api/www/artist/artistMusic?artistid=' + f"{name_list[0]['id']}" + '&pn=1&rn=40&httpsStatus=1&reqId=46102b90-1ba6-11ee-b197-df2d4c451ee7&plat=web_www&from=' # print(singer_url) headers2 = { 'Cookie': 'Hm_token=HkH2GRY3xtJHb3DdmxhZtpXhZwmYm33z; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1688482266,1688525741,1688610666; _ga=GA1.2.156249961.1688482266; _gid=GA1.2.625106950.1688482266; _ga_ETPBRPM9ML=GS1.2.1688610668.3.1.1688610977.60.0.0; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1688610977', 'Cross': 'ba8722ddd95c14df184665f473c3f936', 'Host': 'www.kuwo.cn', 'Referer': 'http://www.kuwo.cn/singer_detail/1725804', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0' } response = requests.get(singer_url, headers=headers2) # 获取第一页数据,每页二十一条数据,可以修改singer_url的pn和rn值 response_dict = json.loads(response.text) singer_list = response_dict['data']['list'] # print(singer_list) # 输出歌手的歌曲列表 print("即将下载的歌曲列表:") print("----------------------") for i in tqdm(singer_list): # 遍历爬取数据 rid = f"{i['rid']}" sing_name = f"{i['name']}" artist = f"{i['artist']}" isListenFee = f"{i['isListenFee']}" print(sing_name, artist, isListenFee) print("----------------------") # print(f"{singer_list[i]['name']}") #输出列表中第十一个name元素 # print(response) # print(response['data']) for i in tqdm(singer_list): # 遍历爬取数据 rid = f"{i['rid']}" sing_name = f"{i['name']}" artist = f"{i['artist']}" print("即将下载:------------" + sing_name, artist) # print(f"{i['rid']} {i['name']} {i['artist']}") # 遍历访问列表中存在字典 # sing_url1获取歌词,歌曲封面,热门评论,全部评论 sing_url1 = 'http://m.kuwo.cn/newh5/singles/songinfoandlrc?musicId=' + rid + '&httpsStatus=1&reqId=898c62d0-1bba-11ee-8a80-5935031587a9&plat=web_www&from=' # sing_url2获取歌曲下载地址url sing_url2 = 'http://www.kuwo.cn/api/v1/www/music/playUrl?mid=' + rid + '&type=music&httpsStatus=1&reqId=318024e0-1bbb-11ee-8a80-5935031587a9&plat=web_www&from=' resp1 = requests.get(sing_url1) # print(resp1) resp2_json = json.loads(resp2.content.decode()) # (resp2_json) try: music_data = resp2_json['data']['url'] # 获取音乐的二进制文件 # print(music_data) response_data = requests.get(music_data) # print(response_data) with open('D:\训练\慕思c\\' + sing_name + '.mp3', 'wb') as music: print('-----------------正在下载请稍等----------------------') music.write(response_data.content) music.close() print('下载完毕!') except: print(sing_name + "下载失败") # print("失败原因可能是因为是vip音乐") print("全部下载完成")
爬取酷我音乐,一个歌手所有歌曲(除vip以外)
最新推荐文章于 2024-12-27 16:09:48 发布