话不多说直接上代码
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()
,- 苹果电脑照片怎么压缩(如何在Mac电脑中压缩图片)
- 苹果手机如何查看行程(还在翻微信查岗)
- 页码设置奇偶页不同怎么取消(还好我有绝招)
- 微信没有注册选项怎么回事(微信可以同一手机号申请小号啦)
- 社保查询个人账户明细怎么查(社保明细网上怎么查询打印)
- 皮皮虾可以建群聊吗(推出社区公约严审内容)
- 美团美团会员怎么买(进来看看你点的外卖超值不超值)
- 腾讯课堂怎么改不了名字(三种职业教育平台型运作模式深度分析——学浪、网易云课堂、腾讯课堂)
- 手机版微博怎么悄悄关注(医生紧急提醒)
- 抖音橱窗要不要开通淘宝客(业余时间做抖音小橱柜)
- 微信默认的红包封面序列号是什么(但这些“套路”须警惕……)
- 4k高清mv(4K修复)
- 王者荣耀虞姬大招出暴击(虞姬教学)
- 2021民营企业500强排名完整榜单(湘企都有谁)
- 淘宝讲师是什么职业(一半是老板、总裁)
- 排名
- 软件
- 人气
- 下载