赵乾舟 发表于 2021-6-12 20:48:54

酷我音乐下载

'''
1.数据从哪里获取?发送请求网站
2.获取目标网页数据解析网址:    解析数据===音乐文件
3.下载保存
'''
import requests         # 发送请求
import json             # json 解析数据
import time
import os


if os.path.exists('酷我音乐'):
    print()
else:
    os.mkdir('酷我音乐')

def main():
    singer = str(input('请输入歌手的名称:'))      # str 字符串
    number = int(input('请输入要下载页数:'))      # int 整型
    for x in range(1,number+1):
      # 该网站有反扒机制,要用模拟浏览器来进行伪装。
      headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36',
            'Referer':'http://www.kuwo.cn/search/list?key=%E5%91%A8%E6%9D%B0%E4%BC%A6',
            'csrf':'IV9C8YJA11',
            'Cookie':'Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1603461123; _ga=GA1.2.716489643.1603461123; _gid=GA1.2.1633576714.1603461123; reqid=7c6c4c66X6a47X44a4Xa7b9X85072188ffb0; gtoken=QGWMzDK6SeQV; gid=b3d74f5a-564f-4b4d-be85-022e310107ec; _gat=1; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1603461216; kw_token=IV9C8YJA11'
      }
      # json 逆向解析api接口音乐接口
      url = 'http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={}&pn={}&rn=30&reqID=615ae920-2d21-11ea-b560-73e04c9f8018'.format(singer,x)
      rest = requests.get(url,headers = headers)
      result = json.loads(rest.text)
      data = result['data']['list']
      print(data)
      for i in data:
            # 音乐的ID
            rid = i['rid']
            # 音乐的名称
            name = i['name']
            # 爬取到指定歌手歌曲的音乐路径
            url = 'http://www.kuwo.cn/url?format=mp3&rid={}&response=url&type=convert_url3&br=128kmp3&from=web&t=1577081015618&reqID=f4af2221-2549-11ea-92dc-b1e779c8d1d6'.format(rid)
            result = requests.get(url, headers=headers)#.json()
            print(result.text)
            result=result.json()
            # 音乐路径
            music_url = result['url']
            time.sleep(2)
            # 下载音乐
            with open('酷我音乐/{}.mp3'.format(name),'wb') as f:
                music = requests.get(music_url, headers=headers)    # 获取音乐文件
                time.sleep(2)
                f.write(music.content)                              # 转格式
                f.close()
                print('\t下载完成')


main()




页: [1]
查看完整版本: 酷我音乐下载