Python下載網(wǎng)易云歌單歌曲的示例代碼
今天寫了個下載腳本,記錄一下
效果:

直接上代碼:
# 網(wǎng)易云 根據(jù)歌單鏈接下載MP3歌曲
import requests
from bs4 import BeautifulSoup
def main():
url = "https://music.163.com/#/playlist?id=3136952023" # 歌單地址 請自行更換
if '/#/' in url:
url = url.replace('/#/', '/')
headers = {
'Referer': 'http://music.163.com/',
'Host': 'music.163.com',
'cookie': '自己去網(wǎng)站拿,獲取方式在下邊',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
}
s = requests.session()
try:
response = s.get(url, headers=headers).content
soup = BeautifulSoup(response, 'lxml')
lis = list(soup.find('ul'))
fatherlis = ['歌單名:' + str(soup.find('h2').string)]
for i in lis:
sonlis = []
sonlis.append(str(len(fatherlis)) + '.')
sonlis.append(i.a.string)
sonlis.append(str(i.a.get('href'))[str(i.a.get('href')).find('=') + 1:-1] + str(i.a.get('href'))[-1])
fatherlis.append(sonlis)
except:
print("\n\t歌曲鏈接輸入錯誤")
exit('ERROR!')
format = '{0:<10}\t{1:{3}<10}\t{2:<10}'
print("從'{}'中找到了{(lán)}條歌曲".format(str(soup.find('h2').string), len(fatherlis) - 1))
print('-------------------------------------------------------------------------------------------------')
print('序號 歌曲名稱 歌曲鏈接')
for i in fatherlis:
if fatherlis.index(i) == 0:
continue
else:
print(
format.format(i[0], i[1], 'http://music.163.com/song/media/outer/url?id=' + i[2] + '.mp3', chr(12288)))
download_music(i[2],i[1])
print('##########################下載完成##########################')
# 歌曲下載
def download_music(song_id,song_name):
file = "./music/" # 保存音樂的文件路徑
wurl = "https://link.hhtjim.com/163/" # 外鏈地址
song_url = wurl + song_id + ".mp3"
# 獲取歌曲16進(jìn)制編碼
song = requests.get(song_url).content
# 獲取歌曲名稱
# 保存文件
with open(file + song_name + '.mp3', 'wb') as f:
f.write(song)
if __name__ == '__main__':
main()
cookie獲取方式
登錄網(wǎng)易云web版 https://music.163.com/

復(fù)制粘貼到上方代碼中,開始下載就好了
到此這篇關(guān)于Python下載網(wǎng)易云歌單歌曲的示例代碼的文章就介紹到這了,更多相關(guān)Python下載網(wǎng)易云歌單內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python正則表達(dá)式匹配數(shù)字和小數(shù)的方法
這篇文章主要介紹了Python正則匹配數(shù)字和小數(shù)的方法,本文通過示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
Python實(shí)現(xiàn)PDF轉(zhuǎn)換文本詳解
這篇文章主要介紹了詳解用Python把PDF轉(zhuǎn)換為文本方法總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-10-10
Python多線程經(jīng)典問題之乘客做公交車算法實(shí)例
這篇文章主要介紹了Python多線程經(jīng)典問題之乘客做公交車算法,簡單描述了乘客坐公交車問題并結(jié)合實(shí)例形式分析了Python多線程實(shí)現(xiàn)乘客坐公交車算法的相關(guān)技巧,需要的朋友可以參考下2017-03-03
解決Python print 輸出文本顯示 gbk 編碼錯誤問題
這篇文章主要介紹了解決Python print 輸出文本顯示 gbk 編碼錯誤問題,本文給出了三種解決方法,需要的朋友可以參考下2018-07-07
基于Python第三方插件實(shí)現(xiàn)西游記章節(jié)標(biāo)注漢語拼音的方法
這篇文章主要介紹了基于Python第三方插件實(shí)現(xiàn)西游記章節(jié)標(biāo)注漢語拼音的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
利用Pandas讀取表格行數(shù)據(jù)判斷是否相同的方法
這篇文章主要給大家介紹了關(guān)于利用Pandas讀取表格行數(shù)據(jù)判斷是否相同的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Python根據(jù)指定日期計(jì)算后n天,前n天是哪一天的方法
這篇文章主要介紹了Python根據(jù)指定日期計(jì)算后n天,前n天是哪一天的方法,涉及Python日期與時間計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2018-05-05

