此博客僅爲我業餘記錄文章所用,發佈到此,僅供網友閱讀參考,如有侵權,請通知我,我會刪掉。
本文章純野生,無任何借鑑他人文章及抄襲等。堅持原創!!
前言
你好。這裏是Python爬蟲從入門到放棄系列文章。我是SunriseCai。
注:這是三月份的博文。
文章配套了視頻,結合視頻食用,味道更佳。點擊直達!
本文章主要介紹利用爬蟲程序調用API去 下載 網易雲音樂的歌曲 。
1. 文章思路
看看網易雲音樂網站,如下多圖所示:
- 首頁(一級頁面)
- 搜索頁面(這裏搜索 東方之珠)
- 然後點擊第一首歌曲
- 播放頁面(注意鏈接裏邊有一個id,劃重點!!!)
- 看到播放頁面,捕捉到了多個m4a格式的數據包,不清楚m4a是什麼沒有關係,下面會介紹到它,這裏先訪問一波它的URL。
- 訪問m4a的URL,來到下面的頁面
- 該頁面 是東方之珠 該歌曲的播放頁面,同時也是下載頁面。
既然知道了是m4a數據包的URL可以下載歌曲,那接下來就是去分析URL了。
但是!!!這裏咱們就不去分析URL,因爲咱們這裏定位的是入門,所以,簡單就完事了。有更方便快捷的方法,是什麼呢?請往下看。
- 百度百科釋義上面提到的m4a。
2. 調用網易雲音樂API
- 看看其他歌曲的播放頁面。
- 這首Yellow也有對應的id。
得知網易雲音樂的歌曲都有着對應的id,很好,接下來看看如何利用這個id去下載對應的音樂。
這裏網易雲音樂API隆重登場。
http://music.163.com/song/media/outer/url?id=
API的使用很簡單,只需要填入歌曲的id即可使用,先看示例:
- 下圖是在API裏邊填入歌曲id,然後用瀏覽器訪問的樣子。
代碼示例:
執行代碼後的樣子:
3. 代碼部分
# -*- coding:utf-8 -*-
# author : SunriseCai
# datetime : 2020/3/27 17:08
# software : PyCharm
"""網易雲音樂下載程序"""
import requests
class DownloadMusic(object):
def __init__(self):
self.song_url = 'http://music.163.com/song/media/outer/url?id={}'
self.headers = {
'user-agent': 'Mozilla5.0'
}
def get_song_url(self, song_id):
"""
傳入歌曲id,拼湊完整URL,然後調用下載音樂函數
:param song_id: 歌曲id
:return:
"""
url = self.song_url.format(song_id)
self.download_music(url)
def download_music(self, song_url):
"""
接受歌曲URL,執行下載函數
:param song_url: 歌曲URL
:return:
"""
resp = requests.get(url=song_url)
with open('Yellow.mp3', 'wb') as f:
f.write(resp.content)
def main(self):
"""
主函數
:return:
"""
self.get_song_url('1413502053')
if __name__ == '__main__':
spider = DownloadMusic()
spider.main()
Github上大神的創建的音樂API項目 ,感興趣的可以去了解。
文章問題:
- 本篇文章很水,因爲是入門,所以真的很水。就是水字數水文章數量的。爲了湊數量而寫。
- 建議各位通過複製黏貼代碼去執行一番,有任何疑問請先自己動手解決,盡信書則不如無書
- 實在解決不了可以一起交流。
待改進:
- 添加搜索歌曲的功能,自己動手,豐衣足食。
- 此處可參考https://blog.csdn.net/weixin_45081575/article/details/98184234,沒錯,也是我水的博文。
最後來總結一下本章的內容:
- 介紹了調用API去下載網易雲音樂的爬蟲思路
- 代碼展示
- 無
- 感謝你的耐心觀看,點關注,不迷路。
- 爲方便菜雞互啄,歡迎加入QQ羣組織:648696280