酷狗音乐是一款非常不错的软件,包含着音乐软件所有该有的功能。
初中开始接触上网,下载歌曲便一直用酷狗音乐。想当初自己年少无知啊,好不容易凑够5块钱上了2个小时的网,结果愣是一首歌没下载下来,下载的全是歌词文件!我兴高采烈地往自己的mp4里传输,结果发现不能播放!网吧时间到了,口袋钱空了,歌没下下来,当时气死老子了。这也可以说是一段难忘的经历啊。
上了大学以后,为了配合我稍微有一点那么文绉绉的气质,开始跟随网易大军,使用网易云音乐,开启我的高逼格历程!大学毕业,气质全无,我觉得我配不上网易云了,又投入了酷狗音乐的怀抱[笑哭]。
这不,这两天重看《双世宠妃2》,再一次深深地迷上了里面的曲檀儿(梁洁饰演)【花痴】,配合叶炫清的《归去来兮》,简直了!【好像屌丝本质一览无余?才不是,是欣赏!哈哈】
开始分析:
MV链接:
想直接看的,可跳转过去哦!
第一步:打开酷狗WEB,搜索《归去来兮》,点击
第二步:点击音乐播放界面的mv,进行跳转到播放页面。
简直了,美美美
哈哈,别忘了正事!
第三步:右键(Chrome)检查,Ctrl+F搜索"归去来兮",结果如下:
可以看出,这里面有我们需要的MV的标题和MV的哈希值。至于哈希值是啥,待会再解释。
获取到它们,方法如下:
access_url ="链接地址" # 移除SSL验证时的警告 urllib3.disable_warning) response = reque(access_url, headers=headers, verify=False) html = re web_data = e(html) datas = web_da('//script[@type="text/javascript"]') x = datas[1].xpath('./text()')[0].strip().split('.')[0].split(',') mv_hash = x[1].split('"')[1] mv_title = x[2].split('"')[1] print('MV哈希值:%s,MV标题:%s'%(mv_hash,mv_title)) # 划重点:获取key key = kugou_hash(mv_hash)第四步?
在开始第四步之前,先用网上的解释来说明什么是哈希加密!
转载链接:Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。
什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
举个例子,你写了一篇文章,内容是一个字符串'how to use python hashlib - by Michael',并附上这篇文章的摘要是'2d73d4f15c0db7f5ecb321b6a65e5d6d'。如果有人篡改了你的文章,并发表为'how to use python hashlib - by Bob',你可以一下子指出Bob篡改了你的文章,因为根据'how to use python hashlib - by Bob'计算出的摘要不同于原始文章的摘要。
可见,摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过。
摘要算法之所以能指出数据是否被篡改过,就是因为摘要函数是一个单向函数,计算f(data)很容易,但通过digest反推data却非常困难。而且,对原始数据做一个bit的修改,都会导致计算出的摘要完全不同。
好,接下来,第四步:用hash得到key!
m = () # 哈希 md5加密 kugou_slat = 'kugoumvcloud' # 盐 m.update((mv_hash + kugou_slat).encode("utf8")) # 哈希值+盐 key = m.hexdigest() return key # 返回key值第五步:刷新页面,右键检查,Network,搜索key,得到如下结果:
可以看到,这里面就有我们想要的超清画质的下载链接!
第六步:既然找到了最后的下载链接,那下载自然就不在话在!开搞!
download_url = ";hash={}&key={}&pid=6&ext=mp4&ismp3=0".format(mv_hash,key) hash_res = reque(download_url, headers=headers) hash_js = () # json格式 try: play_url = hash_js['mvdata']['rq']['downurl'] file_suffix = ('/')[-1].split('.')[-1] if play_url !="": print('1080P MV下载地址已找到,请稍候...') with open(save_path_real+mv_title + "." + file_suffix, "wb")as fp: (reque(play_url).content) print('>>>1080P下载完成!!!')至此,我们想要的超清MV便可收入囊中!演示:
最后,附上源码:
import requests import hashlib from lxml import etree import urllib3 import winreg import os # mv保存地址 def get_desktop(): key = winreg.OpenKey;Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders') return winreg.QueryValueEx(key, "Desktop")[0] save_path_real = get_desktop()+'\\' + "酷狗音乐MTV" + "\\" headers = {"user-agent":"Mozilla (Windows NT 10.0; Win64; x64) \ AppleWebKi (KHTML, like Gecko) Chrome Safari;} print('>>>>>>>>>>>>酷狗MV下载程序开始<<<<<<<<<<<<<\n') print('>>>>>>>>>>>>示例URL:;<<<<<<<<<<<<\n') # 获取mv的hash和title def get_mv_name_hash(html, save_path_real): web_data = e(html) datas = web_da('//script[@type="text/javascript"]') x = datas[1].xpath('./text()')[0].strip().split('.')[0].split(',') mv_hash = x[1].split('"')[1] mv_title = x[2].split('"')[1] print('MV哈希值:%s,MV标题:%s'%(mv_hash,mv_title)) # 获取key key = kugou_hash(mv_hash) # 下载MV download_mv(mv_title,mv_hash,key,save_path_real) # 哈希加密的教程链接,转1: # 哈希加密的教程链接,转2: # 得到key # 传入MV哈希值 返回KEY值 def kugou_hash(mv_hash): m = () # 哈希 md5加密 # #song_hash_upper=mv_()#大写 kugou_slat = 'kugoumvcloud' # 盐 m.update((mv_hash + kugou_slat).encode("utf8")) # 哈希值+盐 key = m.hexdigest() return key # 返回key值 # 下载 def download_mv(mv_title,mv_hash,key,save_path_real): if not os.(save_path_real): os.mkdir(save_path_real) print("%s正在下载,请稍候..."%mv_title) download_url = ";hash={}&key={}&pid=6&ext=mp4&ismp3=0".format(mv_hash,key) hash_res = reque(download_url, headers=headers) hash_js = () # json格式 try: play_url = hash_js['mvdata']['rq']['downurl'] file_suffix = ('/')[-1].split('.')[-1] if play_url !="": print('1080P MV下载地址已找到,请稍候...') with open(save_path_real+mv_title + "." + file_suffix, "wb")as fp: (reque(play_url).content) print('>>>1080P下载完成!!!') except: try: play_url = hash_js['mvdata']['sq']['downurl'] file_suffix = ('/')[-1].split('.')[-1] if play_url !="": print('720P MV下载地址已找到,请稍候...') with open(save_path_real+mv_title + "." + file_suffix, "wb")as fp: (reque(play_url).content) print('>>>720P下载完成!!!') except: try: play_url = hash_js['mvdata']['hd']['downurl'] file_suffix = ('/')[-1].split('.')[-1] if play_url !="": print('540P MV下载地址已找到,请稍候...') with open(save_path_real+mv_title + "." + file_suffix, "wb")as fp: (reque(play_url).content) print('>>>540P下载完成!!!') except: print('>>>无MV!') # 获取html def get_html(url): access_url = url # 移除SSL验证时的警告 urllib3.disable_warning) response = reque(access_url, headers=headers, verify=False) html = re # 获取mv的hash和标题 get_mv_name_hash(html, save_path_real) def main(): # MV页面链接 url = input('>>>请输入酷狗音乐MV播放页URL地址:') get_html(url) continue_download = input('>>>是否继续下载?输入Y or N,其余字符不可用!\n\n') if continue_download == 'Y' or continue_download == 'y': main() # 启动程序 if __name__ == '__main__': main()好了,今天的分享到此就结束了,有想交流的,请记得私信我哦!
代码也可以打包成exe文件,电脑安装python也能下载,我已经打包好了,如果小伙伴有需要的,也记得私信我哦。
1.《酷狗如何传mv到u盘、酷狗如何传歌曲》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《酷狗如何传mv到u盘、酷狗如何传歌曲》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3240201.html