帮我写一个爬虫代码在网易云或者酷狗音乐上爬取我想要的歌曲然后下载MP3格式文件
以下是一个使用Python编写的简单的网易云音乐爬虫代码,用于搜索并下载指定歌曲的MP3格式文件:
import requests
import json
def download_song(song_id, song_name):
# 构造请求URL
url = f"http://music.163.com/api/song/detail/?id={song_id}&ids=[{song_id}]"
headers = {'Referer': 'http://music.163.com/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
try:
# 发送请求
response = requests.get(url, headers=headers)
data = json.loads(response.text)
# 解析歌曲信息
song_url = data['songs'][0]['mp3Url']
# 下载歌曲
response = requests.get(song_url)
with open(f"{song_name}.mp3", "wb") as f:
f.write(response.content)
print(f"歌曲《{song_name}》下载完成!")
except Exception as e:
print(f"下载歌曲《{song_name}》失败:{str(e)}")
def search_song(keyword):
# 构造请求URL
url = f"http://music.163.com/api/cloudsearch/get/web?csrf_token="
payload = {
's': keyword,
'type': '1',
'limit': '1',
'offset': '0'
}
headers = {'Referer': 'http://music.163.com/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
try:
# 发送请求
response = requests.post(url, headers=headers, data=payload)
data = json.loads(response.text)
# 解析搜索结果
song_id = data['result']['songs'][0]['id']
song_name = data['result']['songs'][0]['name']
download_song(song_id, song_name)
except Exception as e:
print(f"搜索歌曲《{keyword}》失败:{str(e)}")
# 输入需要搜索的歌曲关键词
keyword = input("请输入需要搜索的歌曲关键词:")
search_song(keyword)
请注意,由于网易云音乐对爬虫有一定的反爬措施,这个简单的爬虫代码可能无法在所有情况下正常工作。在实际使用时,请遵守相关网站的使用条款和规定,尊重版权
原文地址: https://www.cveoy.top/t/topic/hPW1 著作权归作者所有。请勿转载和采集!