热门搜索:软件下载

如何提取酷狗音乐中的音乐(Python爬取酷狗音乐)

首页教程如何提取酷狗音乐中的音乐更新时间:2023-06-16 22:33:13

话不多说直接上代码

import re

import requests

def requests_dataFromSmarty(url, headers):

response = requests.get(url, headers)

res_text = response.content.decode()

# print(response.content.decode())

re_dataFromSmarty = re.findall(

'"hash":"(?P<hash>.*?)","timelength":(?P<timelength>.*?),"audio_name":"(?P<audio_name>.*?)","author_name":"(?P<author_name>.*?)","song_name":"(?P<song_name>.*?)","album_id":(?P<album_id>.*?),"encode_album_id":"(?P<encode_album_id>.*?)","mixsongid":(?P<album_audio_id>.*?),"is_risk":(?P<is_risk>.*?)',

res_text, re.S)

# print(re_dataFromSmarty[0][0])

return re_dataFromSmarty

# 获取歌曲链接

def music_url(re_dataFromSmarty, headers):

url_2 = f"https://wwwapi.kugou.com/yy/index.php?r=play/getdata&callback=jQuery1910599660947823377_1666248458566&hash={re_dataFromSmarty[0][0]}&dfid=3x7jcE2igcjq3XwZYl2Yr52L&appid=1014&mid=8448c068f4a169a9ee628eee11c6344d&platid=4&album_id={re_dataFromSmarty[0][-4]}&album_audio_id={re_dataFromSmarty[0][-2]}&_=1666248458569"

response = requests.get(url_2, headers)

text=response.content.decode('utf-8')

# print(text,type(text))

re_music_url=re.findall('"play_url":"(.*?)"',text)[0]

# print(re_music_url)

re_music_url=re_music_url.replace('\\/','/')

print(re_music_url,type(re_music_url))

return re_music_url

# 保存模块

def save(re_music_url,name,headers):

# print(re_music_url, type(re_music_url))

response=requests.get(re_music_url,headers=headers)

with open(f'{name}.mp3','wb') as f:

f.write(response.content)

def main():

# 可以通过更换链接来获取不同榜单的音乐

# top500

# url = 'https://www.kugou.com/yy/rank/home/1-8888.html?from=rank'

# 飙升榜

url = 'https://www.kugou.com/yy/html/rank.html'

headers = {

'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'

}

response = requests.get(url, headers=headers)

# print(response.content.decode())

text = response.content.decode()

re_text = re.finditer(

'<span class="pc_temp_num">.*?<a \s*?href="(?P<url_1>.*?)"\s*?data-active="playDwn" data-index="(?P<index_1>.*?)" class="pc_temp_songname"\s*?title="(?P<title_1>.*?)"\s*?hidefocus="true"\s*?>',

text, re.S)

a = 1

for i in re_text:

# 获取信息

url_1 = i.groupdict()['url_1']

# print(url_1)

# print(i.groupdict()['title_1'])

name=i.groupdict()['title_1']

re_dataFromSmarty = requests_dataFromSmarty(url_1, headers)

# print(re_dataFromSmarty)

# 获取歌曲链接

re_music_url=music_url(re_dataFromSmarty, headers)

save(re_music_url,name,headers)

if __name__=='__main__':

main()

,
软件推荐