酷狗音乐下载

Posted chengoudan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了酷狗音乐下载相关的知识,希望对你有一定的参考价值。

酷狗音乐下载

import requests,re,json
#class 代表创建类
class Kugou:#类的第一个字母尽量大写,易于区分

    def __init__(self):
        #设置函数本身私有成员
        #网址可以拼接,也可以用format函数(格式化:把代码中{}替换{}可以写01234排序,也可以不写)

        #协议头header
        #ua---浏览器 ,很多网页需要加
        #Referer 来路,来自于哪访问此网站,有时候用到
        #Host 忘了怎么表达,不算常用
        #Content - Type  一般post需要用这个,常用
        #cookies    你懂的,一般必用
        self.header = {
            "user-agent" : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
        }
        #搜索接口
        self.url = http://mobilecdn.kugou.com/api/v3/search/song?format=json&keyword={0}&page={1}&pagesize={2}
        #下载试听接口
        self.play_url = http://www.kugou.com/yy/index.php?r=play/getdata&hash={}
        #做个字典
        self.song_info = {
            歌名: None,
            play_url: None
        }

#声明函数,word就是{0},shu后面加了=‘20’表示默认搜索20个
    def getlist(self,word,page,shu=20):
       # url = ‘http://mobilecdn.kugou.com/api/v3/search/song?format=json&keyword=‘+word+‘&page=‘+page+‘&pagesize=20‘
       #requests模块请求返回文本
        req= requests.get(self.url.format(word,page,shu), headers=self.header).text
        #print(req)
       #json解析一下
        jiexi = json.loads(req)
       #for循环取出名字与hash
        for x in jiexi[data][info]:
            filename = x[filename]
            hash = x[hash]
            #用play——url + hash构建新的url,访问返回json数据
            r=requests.get(self.play_url.format(hash)).text
            #解析,取出播放和下载的链接
            #因为是在循环内,所以会取出多个
            play_url=json.loads(r)[data][play_url]
            #data = {x[‘filename‘]:x[‘hash‘]}
            #print(data)

            #做一个新的字典
            new_info = {歌名:filename,play_url:play_url}
            #更新字典
            self.song_info.update(new_info)

            #yield self.song_info
            #打印新字典
            print(self.song_info)

        #req = requests.get(self.play_url.format(),headers=self.header).text

#入口
if __name__ == __main__:
    #a=Kugou()  属于实例化类,如果用到类的话,貌似是必须要做实例化,如果不调用类好像不用也行,不过十分推荐做实例化
    #self表示的是类本身,必须要学会这个,感觉超级好用
    a = Kugou()
    #然后就是调用类里面的getlist函数了,推荐加上参数名字,这样乱序也不怕,shu因为后面加了值,所以代表可空,空就是默认20个
    a.getlist(page=1, word=input(请输入要搜索的歌曲:))

 

以上是关于酷狗音乐下载的主要内容,如果未能解决你的问题,请参考以下文章

酷狗音乐QQ显示(VC源代码)

仿酷狗音乐播放器开发日志二十一 开发动态调色板控件(附源代码)

酷狗音乐下载

酷狗音乐展示滚动歌词效果的控件实现

爬取酷狗音乐Top500

酷狗音乐在线播放器 酷狗音乐播放器在线听歌官方网址