爬虫案例-爬取某狗音乐

时间:2025-03-25 07:23:49
import time import requests import hashlib import jsonpath import os url = "https://wwwapi.kugou.com/play/songinfo" #伪造请求头 header= { "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 QuarkPC/2.3.0.256" } #uuid = str(int(time.time())) clinenttime = str(int(time.time()*1000)) #print(uuid) #print(clinenttime) # 数据列表 data_list = [ "NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt", "appid=1014", f"clienttime={clinenttime}", "clientver=20000", "dfid=2UHWk60sDseo11EBHT1lYwCJ", "encode_album_audio_id=c2bdq0fc", "mid=51d94f366e27b4cd47c2f46aa11ac7e6", "platid=4", "srcappid=2919", "token=a062aa8f897a25ed7b96c1e3919c42febd73e21a1a775fafd959f2ff63e36697", "userid=2307953011", "uuid=51d94f366e27b4cd47c2f46aa11ac7e6", "NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt" ] # 将列表拼接成一个完整的字符串 data = "".join(data_list) #MD5加密 md5_hash = hashlib.md5(data.encode()).hexdigest() #md5 = md5_hash.upper() #print(md5_hash) params= { "srcappid":"2919", "clientver":"20000", "clienttime":{clinenttime}, "mid":"51d94f366e27b4cd47c2f46aa11ac7e6", "uuid":"51d94f366e27b4cd47c2f46aa11ac7e6", "dfid":"2UHWk60sDseo11EBHT1lYwCJ", "appid":"1014", "platid":"4", "encode_album_audio_id":"c2bdq0fc", "token":"a062aa8f897a25ed7b96c1e3919c42febd73e21a1a775fafd959f2ff63e36697", "userid":"2307953011", "signature":{md5_hash} } #请求URL request = requests.get(url,headers=header,params=params) json = request.json() #print(json) #提取音乐名称、下载音乐地址 muisc_info = { "音乐名称": jsonpath.jsonpath(json,"$..audio_name")[0], "下载音乐地址" : jsonpath.jsonpath(json,"$..play_url")[0] } print(muisc_info['音乐名称'],muisc_info['下载音乐地址']) # 创建输出目录 output_folder = r"C:/Users/zzx/Desktop/音乐" + "/" if not os.path.exists(output_folder): os.makedirs(output_folder) # 下载音乐文件 music_url = muisc_info["下载音乐地址"] music_response = requests.get(music_url, headers=header) # 保存音乐文件 music_filename = os.path.join(output_folder, f"{muisc_info['音乐名称']}.mp3") with open(music_filename, mode="wb") as f: f.write(music_response.content) print(f"音乐已保存到: {music_filename}")