用python3写一个爬虫爬取邓紫棋所有歌曲并存放到F盘的邓紫棋的歌文件夹
时间: 2024-06-10 10:05:23 浏览: 186
好的,我可以为您提供一个爬取邓紫棋所有歌曲的Python3代码。您只需要将代码保存在.py文件中并运行,即可将所有歌曲保存在您指定的文件夹中。以下是代码:
```
import requests
from bs4 import BeautifulSoup
import os
# 获取邓紫棋所有歌曲的URL
url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp'
params = {
'ct': '24',
'qqmusic_ver': '1298',
'new_json': '1',
'remoteplace': 'txt.yqq.song',
'searchid': '70717558168072146',
't': '0',
'aggr': '1',
'cr': '1',
'catZhida': '1',
'lossless': '0',
'flag_qc': '0',
'p': '1',
'n': '100',
'w': '邓紫棋',
'g_tk': '5381',
'jsonpCallback': 'MusicJsonCallback10232956540828398',
'loginUin': '0',
'hostUin': '0',
'format': 'jsonp',
'inCharset': 'utf8',
'outCharset': 'utf-8',
'notice': '0',
'platform': 'yqq.json',
'needNewCode': '0'
}
r = requests.get(url, params=params)
json = r.json()
song_list = json['data']['song']['list']
# 创建歌曲文件夹
if not os.path.exists('F:\\邓紫棋的歌'):
os.mkdir('F:\\邓紫棋的歌')
# 下载所有歌曲
for song in song_list:
song_id = song['id']
song_name = song['name']
# 获取歌曲文件URL
url = 'https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg'
params = {
'g_tk': '5381',
'jsonpCallback': 'MusicJsonCallback6872906789268776',
'loginUin': '0',
'hostUin': '0',
'format': 'jsonp',
'inCharset': 'utf8',
'outCharset': 'utf-8',
'notice': '0',
'platform': 'yqq.json',
'needNewCode': '0',
'cid': '205361747',
'uin': '0',
'songmid': song['mid'],
'filename': f'C400{song["mid"]}.m4a',
'guid': '9458774480'
}
r = requests.get(url, params=params)
json = r.json()
url = json['data']['items'][0]['filename']
vkey = json['data']['items'][0]['vkey']
song_url = f'http://dl.stream.qqmusic.qq.com/{url}?vkey={vkey}&guid=9458774480&uin=0&fromtag=66'
# 下载歌曲并保存到指定文件夹
r = requests.get(song_url)
with open(f'F:\\邓紫棋的歌\\{song_name}.m4a', 'wb') as f:
f.write(r.content)
print('所有歌曲下载完成')
```
请注意,代码中的路径“F:\\邓紫棋的歌”是指将所有歌曲保存在F盘的“邓紫棋的歌”文件夹中。如果您想要将歌曲保存在其他路径中,请将路径名称更改为您的目标路径。
阅读全文