千千音乐付费音乐爬取--json数据的处理
通过更换songid就可以下载不同的音乐了。
千千音乐获取songid的方法:站内搜索音乐,网址尾部数字就是。
用了网上的别人给出的获取songlink的接口:更多音乐网站接口请看:
https://blog.****.net/weixin_43919632/article/details/88758954
import requests
import pprint
import json
#千千静听——百度音乐接口使用
class Spider(object):
def get_xml(self):
songid='921373'
#获取songlink的接口
url='http://ting.baidu.com/data/music/links?songIds={songids}&type=mp3'.format(songids=songid)
res=requests.get(url,timeout=30).text
self.parse_data(res)
def parse_data(self,res):
#json数列反序列化,将json数据转换为python对象-字典
json_data=json.loads(res)
#通过字典的键取相应的值
songlist=json_data['data']['songList'][0]
#歌曲名字
songname=songlist['songName']
#歌曲下载链接
songlink=songlist['songLink']
print('正在下载 {} \n{}'.format(songname,songlink))
text=requests.get(songlink)
file_name=songname+".mp3"
print(songname,'下载成功' )
self.save(file_name,text)
def save(self,file_name,text):
with open(file_name,'wb') as f:
f.write(text.content)
spider=Spider()
spider.get_xml()