博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
酷狗音乐下载
阅读量:6549 次
发布时间:2019-06-24

本文共 2196 字,大约阅读时间需要 7 分钟。

酷狗音乐下载

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('请输入要搜索的歌曲:'))

 

转载于:https://www.cnblogs.com/chengoudan/p/10334025.html

你可能感兴趣的文章
python threading
查看>>
谷安天下2013年6月CISA考前辅导 第一季
查看>>
ARM程序规范
查看>>
Qt下的OpenGL 编程(8)文字、FPS、动画
查看>>
在普通台式机上搭建服务器虚拟化架构Esxi平台
查看>>
电话线路 30B+D 名词解释
查看>>
吉炬消费系统软件输入密码后无法打开软件界面故障处理
查看>>
Hibernate学习系列————注解一对多双向实例
查看>>
Cannot load from mysql.proc
查看>>
Apache Thrift 教程
查看>>
Python Epoll
查看>>
AS3歌词同步详解
查看>>
单例模式
查看>>
Linux环境NetBeans字体通用抗据齿解决方法
查看>>
Eclipse的花括号(brace)的输入偏好问题
查看>>
工作记录
查看>>
HDOJ 1698
查看>>
linux里安装redis以及redis的安全设置
查看>>
Mysql Procudure
查看>>
作业第六次
查看>>