日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过网易云歌单链接下载网易云歌曲

發布時間:2023/12/31 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过网易云歌单链接下载网易云歌曲 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過網易云歌單鏈接下載網易云歌曲

系統開發環境

操作系統:windows 10Python版本:Python3.x開發工具:pycharm 2019.2所需模塊:os,requests, lxml(請確認pycharm上是否有安裝否則導入會報錯)

難度系數:??

一、先上圖(最終效果)


說明:可見即可爬,暫時只能爬取已經顯示的歌曲列表,后面知道怎么爬取全部歌曲有時間會更新或者另寫一篇。

二、需要理解的知識點

  • 通過F12或者右鍵檢查調出開發者工具,查看Network找到播放列表請求鏈接,找到播放列表鏈接和歌單鏈接之間的規律
    如圖可以看到他們之間的規律為https://music.163.com/playlist?id=歌單鏈接最后的id,即"https://music.163.com/playlist?id=%s" % 歌單id

    代碼:

    import requests from lxml import etree# 歌單地址和播放列表地址不一樣,所以需要一些處理 str = input(r"請輸入要下載的歌單鏈接:") print() # 獲取歌單最后面的id id = str.split("=")[-1] # playlist中的請求地址 url = "https://music.163.com/playlist?id=%s" % id # 偽裝頭部信息爬取當前網頁全部內容 headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}
  • 獲取網易云歌曲鏈接和歌曲名

    查看url

    查看歌曲id

    復制id到編譯工具查找對應的標簽

    查找對應的標簽方便提取(這里應該是在Pycharm上查看比較好,content中能打印出來的就能解析出來,有的網站做了反爬會根據你的Hearders和ip決定給你展示多少內容,有些內容并不會給你展示而你是根據網頁中的Elements解析的內容,你就獲取不到你解析中想要的內容)

    根據標簽提取name和url

    代碼:

    def get_content(url):# 1.請求要抓取的網站--獲取網站返回的數據html = requests.get(url, headers=headers).content.decode("utf-8")# 2.加載htmltree = etree.HTML(html)# print(html)"""// : 根目錄[] :謂語-條件/ : 單個元素@ :提取這個元素"""url_music = tree.xpath('//ul[@class="f-hide"]/li/a/@href')name = tree.xpath('//ul[@class="f-hide"]/li/a/text()')
  • 獲取網易云歌曲外鏈
    這里用的是第二個

    查看音樂id

    復制到網易外鏈轉換查找

    分析規律

    代碼:

    for index, item in enumerate(url_music):url_id = item.split("=")[-1]file_name = name[index]# print(url_id, file_name)print("正在讀取 %s.mp3" % file_name)# 網易云外鏈 http://music.163.com/song/media/outer/url?id=music_base = "http://music.163.com/song/media/outer/url?id=%s" % url_idprint(music_base)# 加r防止字符轉義file_path = r"E:\PyCharm\Project\Module_01\網易云歌曲/%s.mp3" % file_name
  • 讀取音樂文件并寫入
    這個可能會報異常,因為如果歌曲名中有\ / : * ? " < > | 是不符合windows命名規范的,已用正則做處理(更)
    導入re庫,用sub替換非法字符
    import re
    new_name = re.sub(r’[/:?*"<>|]+’, ‘_’, file_name)

    代碼:

    with open(file_path, "wb") as mu:try:req = requests.get(music_base, headers=headers)mu.write(req.content)print("下載 %s.mp3 成功" % file_name)print()except Exception as e:print("讀取 %s.mp3 失敗" % file_name)passcontinueget_content(url)
  • 三、運行

    復制歌單鏈接

    粘貼到編輯器

    因為直接粘貼并Enter會打開網頁跳轉到網頁界面,所以鏈接后面加個空格再按Enter鍵

    好了,你可以看到音樂開始下載了

    查看音樂
    Ctrl+Alt+F12打開音樂文件目錄或者右鍵后再點擊Directory Path打開

    參考

    四、項目全部代碼(2020.9.29更)

    import os import reimport requests from lxml import etree# 歌單地址和播放列表地址不一樣,所以需要一些處理 str = input(r"請輸入要下載的歌單鏈接:") print() # 獲取歌單最后面的id id = str.split("=")[-1] # playlist中的請求地址 url = "https://music.163.com/playlist?id={}".format(id) # 偽裝頭部信息爬取當前網頁全部內容 headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"}def get_content(url):# 1.請求要抓取的網站--獲取網站返回的數據html = requests.get(url, headers=headers).content.decode("utf-8")# 2.加載htmltree = etree.HTML(html)# print(html)"""// : 根目錄[] :謂語-條件/ : 單個元素@ :提取這個元素"""url_music = tree.xpath('//ul[@class="f-hide"]/li/a/@href')name = tree.xpath('//ul[@class="f-hide"]/li/a/text()')# print(url_music, name)for index, item in enumerate(url_music):url_id = item.split("=")[-1]file_name = name[index]# 將不符合windows文件命名規范的文件名用 _ 替換new_name = re.sub(r'[/\:?*"<>|]+', '_', file_name)# print(url_id, file_name)print("正在讀取 {}.mp3".format(file_name))# 網易云外鏈 http://music.163.com/song/media/outer/url?id=music_base = "http://music.163.com/song/media/outer/url?id={}".format(url_id)print(music_base)# 加r防止字符轉義file_dir = "E:\PyCharm\Project\Module_09\網易云歌曲"file_path = r"{}/{}.mp3".format(file_dir, new_name)# 判斷文件目錄是否存在,如果不存在,新建一個文件夾if not os.path.exists(file_dir):os.makedirs(file_dir)with open(file_path, "wb") as mu:try:req = requests.get(music_base, headers=headers)mu.write(req.content)print("下載 {}.mp3 成功".format(new_name))print()except Exception as e:p = print("讀取 {}.mp3 失敗".format(new_name))continueif __name__ == '__main__':get_content(url)

    如果覺得對你們有幫助可以點個贊或者關注一波哦~
    祝你們聽的愉快~

    總結

    以上是生活随笔為你收集整理的通过网易云歌单链接下载网易云歌曲的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 爱情岛论坛自拍亚洲品质极速最新章 | 午夜男人影院 | 国产精品久久久久久久久久久久久久 | 精品日韩制服无码久久久久久 | 88av视频 | 久久aaaa片一区二区 | 多男调教一女折磨高潮高h 国内毛片毛片毛片毛片毛片 | 国产激情综合 | 久久只有这里有精品 | 日本国产在线播放 | 亚洲高潮av | 日韩视频国产 | 日日噜噜噜噜久久久精品毛片 | 日韩高清一级片 | 欧美久久久久久久久久 | 日韩av在线免费观看 | 少妇人妻偷人精品无码视频新浪 | 婷婷丁香一区二区三区 | 九九久久国产精品 | 亚洲一区二区三区免费观看 | 交专区videossex | 欧美一区永久视频免费观看 | 女人被男人操 | av每日更新在线观看 | 麻豆精品国产 | 九色影视 | 国产熟女一区二区 | 蝌蚪自拍网站 | 久久久全国免费视频 | 国产三级在线看 | 男男play视频| 欧美人妻精品一区二区免费看 | 亚洲乱色熟女一区二区 | 亚洲色成人网站www永久四虎 | 日韩欧美视频网站 | 日日操日日| 久久久久久久久久99 | 海角社区在线视频播放观看 | wwwxx在线观看 | 色偷偷资源 | 在线天堂视频 | 欧美1314 | 性欧美一级 | 国产a免费观看 | 日本一区二区三区电影在线观看 | 超碰在线人人 | 毛片在线网址 | 久久久久亚洲av无码专区首jn | 久久国产影视 | 精品国产乱码久久久久久蜜臀网站 | 国产91页| 久久久视屏| 蜜桃视频一区二区在线观看 | 亚洲精品久久一区二区三区777 | 黄色xxxxx| 亲吻刺激视频 | 亚洲成人www | 无码精品在线观看 | www.色国产 | 小h片在线观看 | 色av导航 | 91免费看| 亚洲少妇30p | 香蕉视频黄污 | 国产一级免费观看 | 美女主播福利视频 | 神马午夜精品 | 欧美三级久久久 | 男人和女人插插 | 亚洲精品免费在线视频 | 先锋资源在线视频 | fc2ppv色の美マンに中出し | 久久久久久久国产精品毛片 | 人人爽视频| 成人蜜桃视频 | 日本精品一区二区 | 一区一区三区产品乱码 | 草视频在线 | 国产一区二区视频在线观看免费 | av不卡在线看 | 美女脱了内裤喂我喝尿视频 | 亚洲色欲色欲www在线观看 | αv在线| www.狠狠操.com | 精品人妻在线播放 | 国产群p视频 | 337p粉嫩大胆噜噜噜噜69影视 | 天堂中文网在线 | 日本大尺度吃奶做爰久久久绯色 | 日本中出视频 | 欧洲亚洲精品 | 向着小小的花蕾绽放 | 五十路中文字幕 | 国产精品久久久久桃色tv | 亚洲射射 | av首页在线观看 | 色婷婷五 | 天天操夜夜操狠狠操 | 久久久xxx |