我现在有一个xml存储一系列歌曲的id。现在,需要一个程序来批量得到歌曲的名称和作者,并以文件形式(最好也是xml)保存。
比如,xml中第一个id是28457552
。
通过Edge浏览器(版本111.0.1661.62),我尝试了
http://openapi.music.163.com/openapi/music/basic/song/detail/get/v2?songId=28457552&appId=a30***************************95
(为保护信息隐藏了appId内容),却返回了
{"msg":"非法sign参数","code":1402,"message":"非法sign参数"}
。但我没在开发平台找到sign参数填什么。
那么应该怎么写程序才能达到这一需求?
语言的话,js java python c++(c)都可以。
```java
导入所需的库和模块:要使用网络请求和JSON解析等功能,你需要导入requests和json库。
python
import requests
import json
构建API请求URL:在网易云音乐提供的API文档中,你可以找到歌曲信息的API请求URL。将其复制到代码中,并根据需要添加查询参数。
python
url = "http://musicapi.leanapp.cn/search?keywords=周杰伦"
发送API请求并获取响应:使用requests库发送HTTP GET请求,获取API响应。检查响应状态码,确保请求成功。
python
response = requests.get(url)
if response.status_code == 200:
data = json.loads(response.text)
else:
print("API请求失败,错误码:", response.status_code)
解析API响应并提取所需信息:由于API响应的数据格式是JSON,你需要使用json库对其进行解析。按照API文档中所述的字段名称查找所需的信息,例如,歌曲名、歌手名、专辑名等。
python
song_name = data["result"]["songs"][0]["name"]
artist_name = data["result"]["songs"][0]["ar"][0]["name"]
album_name = data["result"]["songs"][0]["al"]["name"]
print("歌曲名:", song_name)
print("歌手名:", artist_name)
print("专辑名:", album_name)
完整的程序如下:
python
import requests
import json
url = "http://musicapi.leanapp.cn/search?keywords=周杰伦"
response = requests.get(url)
if response.status_code == 200:
data = json.loads(response.text)
song_name = data["result"]["songs"][0]["name"]
artist_name = data["result"]["songs"][0]["ar"][0]["name"]
album_name = data["result"]["songs"][0]["al"]["name"]
print("歌曲名:", song_name)
print("歌手名:", artist_name)
print("专辑名:", album_name)
else:
print("API请求失败,错误码:", response.status_code)
```