python下载网易云音乐付费歌曲有哪些_学习python总结 - 下载网易云音乐单首歌曲...
本帖最后由 快樂的小萌新 于 2020-3-14 19:34 編輯
安裝幾個包就可以使用了
pip install requests
pip install tkinter
也沒什么技術含量
有個窗口,輸入連接就可以下載了
微信截圖_20200220195803.png (14.06 KB, 下載次數: 2)
2020-2-20 19:58 上傳
importreimportrequests
importtkinter astk
importtkinter.messagebox
# URL = https://music.163.com/#/song?id=1381755293#獲取url中的歌曲id=1381755293defgetid(url):
print(url)
compile_id=re.compile(r'song.(.*?)',re.S)#正則匹配鏈接里面的idid_url = re.split(compile_id,url)#分割出來匹配的內容returnid_url[2] #返回分割出來的元素#把id傳進來defget_url(songid):
#這個鏈接是萬能的下載網易云的,只需要你更換id號url = 'http://music.163.com/song/media/outer/url?'+songid+'.mp3'returnurl
#解析替換好id的url,解析出二進制代碼defparse_url(url):
headers={
'User-Agent': 'Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 78.0.3904.97Safari / 537.36'}
response = requests.get(url,headers=headers)
#返回歌曲二進制的代碼returnresponse.content
#獲取歌曲的名字defparse_name(url):
#替換鏈接中的/#,不然無法獲取到數據url = url.replace('/#','')
#請求頭文件headers = {
'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','accept-encoding':'gzip, deflate, br','accept-language':'zh-CN,zh;q=0.9','cookie':'_iuqxldmzr_=32; _ntes_nnid=c59ed51e9697ed4642b646942b46bbc8,1576941133686; _ntes_nuid=c59ed51e9697ed4642b646942b46bbc8; WM_NI=DSZ%2FGkHxi32BLrNlcwnPq4U0J5GaDb%2FANMPMGU5oI4iK9%2FfRowFCLelDRiwcM1INriNDxTE7uEU1Q1s6rvmtS69epv054SZJkohIat3Xol%2FIdIYdSgojP1ACHpS4QoM2Y1U%3D; WM_NIKE=9ca17ae2e6ffcda170e2e6ee82c254ba9eaf99d945a68e8eb6c85e839b9baff37ff3b38db7db5ba1efa8d4ef2af0fea7c3b92a888d96d0c6618ca8a7d4b14a90ae828de27dae90bfd5d83c8aeb8982c76aed9f82aed347858bfb90cc40ab95f7d0e55aada98aa4cf6fb09c9e8af6698fef87aff1638e9cb8b5c83db79b9bd2d43bb1eabe97f08091eaf786f37ef4ebfcb4d942a9b1a8aae480f188a18dae43a8979785d26dadb6a0d2c4498cb09dd5d4658fee97d2d837e2a3; WM_TID=d6p47C9W01lBVEVFUVY97ljXVHVZx1mg; JSESSIONID-WYYY=D%2BESH1p5kzoAHro%2F1G5EPti7bkikxreSa8EuhynyhAH6jpnF2aRm%2F%2BtlPBov8cf0jPSknfI5z2em8nnMgq4AhopgQKJg2rXnZqqwDzKsHaGHXd5Je%2FFXyU9CG29kDKxDUZFnnfHAZ%5CybbOS7ZRvSaO49WNX%2FMlmq9szk2nwgCD8xierj%3A1576991817201','referer': 'https://music.163.com/','sec-fetch-mode': 'nested-navigate','sec-fetch-site': 'same-origin','upgrade-insecure-requests': '1','user-agent': 'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14'}
#請求返回的數據response = requests.get(url,headers=headers)
#解析數據為html代碼data = response.text
#用正則提取出歌曲名pattern = re.compile('
(.*?)-(.*?)-',re.S)names = re.findall(pattern,data)
#拼接歌曲名和歌手名字forname innames:
name =name[0]+'-'+name[1]+'.mp3'returnname
#保存歌曲defsave_mp3(data,name):
withopen(name,'wb') asf:
f.write(data)
f.close()
defmian():
#獲取輸入框中的歌曲鏈接url = e.get()
#解析出歌曲鏈接的歌曲名name = parse_name(url)
#解析出歌曲的id號songid= getid(str(url))
#將id號傳入,獲取到歌曲的下載鏈接mp3_url = get_url(songid)
#將下載鏈接傳入,獲取到歌曲的數據data = parse_url(mp3_url)
#傳入數據和歌曲名save_mp3(data,name)
#下載完成,彈出對話框tk.messagebox.askokcancel(title= '注意~',message='下載完成')
#設置窗口window = tk.Tk()
#窗口的名字window.title('下載網易云音樂')
#窗口的長寬window.geometry('400x100')
#設置輸入窗口,50寬e = tk.Entry(width=50)
#把輸入框打包進彈窗中e.pack();
#設置兩個插入按鈕b1 = tk.Button(text='開始下載',width=10,height=1,command=mian)
#把按鈕打包進彈窗中b1.pack()
#加載顯示窗口window.mainloop()
window.mainloop()
總結
以上是生活随笔為你收集整理的python下载网易云音乐付费歌曲有哪些_学习python总结 - 下载网易云音乐单首歌曲...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 很好的理解遗传算法的样例
- 下一篇: Android Button监听的方式