ygjn
import requests,json,os
from lxml import etree
header={
\'Referer\': \'http://www.kugou.com/\',
\'User-Agent\': \'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36\'
}
def ge(ming):
m={}
n=1
a=requests.get(\'http://so.service.kugou.com/get/complex?word=\'+ming,headers=header).text
aa1=json.loads(a)[\'data\']
# print(aa1)
if aa1 == \'\':
a1 = requests.get(\'http://songsearch.kugou.com/song_search_v2?keyword=\' + ming+\'&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter\',headers=header).text
else:
ccc1=aa1[\'1\'][\'song_count\']
if ccc1>490:
ccc1=480
else:
ccc1=ccc1
a1=requests.get(\'http://songsearch.kugou.com/song_search_v2?keyword=\'+ming+\'&pagesize=\'+str(ccc1),headers=header).text
# print(a1)
# # \'http://songsearch.kugou.com/song_search_v2?callback=jQuery112408886213951250788_1529543235106&keyword=%E5%BC%A0%E6%9D%B0&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=\'
aa=json.loads(a1)[\'data\'][\'lists\']
for i in aa:
print(n,i[\'FileName\'])
m[n]={i[\'FileHash\']:i[\'AlbumID\']}
n=n+1
m[n]=\'退出\'
print(n,m[n])
while 1:
shu=int(input(\'请输入要选的歌的序号:\'))
if m[shu]==\'退出\':
print(\'退出选歌\')
break
for ii,jj in m[shu].items():
# print(ii,jj)
a2 = requests.get(\'http://www.kugou.com/yy/index.php?r=play/getdata&hash=\' +ii + \'&album_id=\' + jj, headers=header).text
# # \'http://www.kugou.com/yy/index.php?r=play/getdata&hash=40B23722BF9CD553A9C9B611E148E366&album_id=8604631&_=1529541198941\'
aa2 = json.loads(a2)[\'data\']
name=aa2[\'audio_name\']
aaa2=aa2[\'play_url\']
if os.path.isfile(\'D:\\酷狗音乐\\\'+name+\'.mp3\'):
print(\'《{0}》已存在!\'.format(name))
continue
else:
print(\'开始下载《{0}》\'.format(name))
b=requests.get(aaa2,headers=header).content
with open(\'D:\\酷狗音乐\\\'+name+\'.mp3\',\'wb\')as f:
f.write(b)
print(\'完成下载《{0}》!\'.format(name))
continue
while 1:
try:
ge_name=input(\'请输入想要的歌曲名或歌手名(1:退出软件):\')
if ge_name == \'1\':
print(\'退出软件\')
break
else:
ge(ge_name)
except:
print(\'输入错误\')

分类:

技术点:

相关文章: