鱼C论坛

 找回密码
 立即注册
查看: 1982|回复: 0

[技术交流] 酷我音乐下载

[复制链接]
发表于 2021-1-13 16:59:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 愷龍 于 2021-1-13 17:00 编辑

爬虫下载酷我音乐:
输入想听的歌,然后就会显示相关的歌的序号,然后输入序号就可以下载。
例如:
输入:像我这样的人
然后选择第一个,输入0
然后稍等即可下载完成

                               
登录/注册后可看大图

下载后保存在电脑的当前用户的文件夹下的酷我音乐文件夹里

                               
登录/注册后可看大图

代码比较基础,运行一次只能下载一首歌。
  1. #coding=utf-8
  2. import os
  3. import requests



  4. class KuWomusic():
  5.     def __init__(self):
  6.         self.headers2={
  7.             'Referer': 'https://kuwo.cn/',
  8.             'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
  9.         }
  10.         self.headers={
  11.                         'Accept-Encoding': 'gzip, deflate, br',
  12.                         'Accept-Language': 'zh-CN,zh;q=0.9',
  13.                         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
  14.                         'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
  15.                         'Connection': 'keep-alive',
  16.                         'Cookie': 'kw_token=WPVJHJO2KD',
  17.                         'csrf': 'WPVJHJO2KD',
  18.                         'Host': 'kuwo.cn',
  19.                         'Sec-Fetch-Dest': 'empty',
  20.                         'Sec-Fetch-Mode': 'cors',
  21.                         'Sec-Fetch-Site': 'same-origin',
  22.                         'Referer': 'https://kuwo.cn/search/list'
  23.         }
  24.         self.singer = []
  25.         self.song = []
  26.         self.rid = []
  27.         self.songTimeMinutes = []
  28.         self.url = []
  29.     def search(self):
  30.         key = input('请输入想听的歌:')
  31.         url_0 = "https://kuwo.cn/api/www/search/searchMusicBykeyWord?key={0}&pn=1&rn=30&httpsStatus=1&reqId=88432c31-fe6f-11ea-bfec-2f45c636f613".format(key)
  32.         res_0 = requests.get(url_0,headers=self.headers)
  33.         res_0 = res_0.json()
  34.         music_list = res_0["data"]["list"]
  35.         ip = 0
  36.         for music in music_list:
  37.                 singer = music["artist"]
  38.                 song = music["name"]
  39.                 rid = music["rid"]
  40.                 songTimeMinutes = music["songTimeMinutes"]

  41.                 self.singer.append(singer)
  42.                 self.song.append(song)
  43.                 self.rid.append(rid)
  44.                 self.songTimeMinutes.append(songTimeMinutes)
  45.         self.select()

  46.     def select(self):
  47.         ip = 0
  48.         for song, singer, rid, songTimeMinutes in zip(self.song, self.singer, self.rid, self.songTimeMinutes):
  49.             print(ip,song,singer,songTimeMinutes)
  50.             ip += 1
  51.         ip = input("请输入序号:")
  52.         ip = int(ip)
  53.         song = self.song[ip]
  54.         singer = self.singer[ip]
  55.         rid = self.rid[ip]

  56.         self.download(song,singer,rid)
  57.     def download(self,song,singer,rid):
  58.         url_1 = 'https://kuwo.cn/url?format=mp3&rid={0}&response=url&type=convert_url3&br=320kmp3&from=web&t=1600959341055&httpsStatus=1&reqId=03bd6000-fe76-11ea-a79c-9575039ac1cf'.format(rid)
  59.         response = requests.get(url_1, headers=self.headers)
  60.         dict = response.json()
  61.         url = dict['url']
  62.         music = requests.get(url,headers=self.headers2).content
  63.         dir = os.getcwd()
  64.         dir = os.path.join(dir, "酷我音乐 ")
  65.         if not os.path.exists(dir):
  66.             os.mkdir(dir)  # 构造文件夹
  67.         os.chdir(dir)  # 将下载的歌曲存储在该文件夹
  68.         print(song, singer)
  69.         file_name =  song + '-' + singer + '.mp3'  # 文件名
  70.         with open(file_name, 'wb') as f:
  71.             f.write(music)
  72.         print("下载成功!")

  73. if __name__ == '__main__':
  74.         music = KuWomusic()
  75.         music.search()
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-29 01:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表