千千音乐付费音乐爬取--json数据的处理

通过更换songid就可以下载不同的音乐了。
千千音乐获取songid的方法:站内搜索音乐,网址尾部数字就是。
千千音乐付费音乐爬取--json数据的处理_第1张图片
用了网上的别人给出的获取songlink的接口:更多音乐网站接口请看:
https://blog.csdn.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()

你可能感兴趣的:(爬虫)