手把手教你使用Python抓取QQ音樂數據(第一彈)

【1、項目目標】數據庫

獲取 QQ 音樂指定歌手單曲排行指定頁數的歌曲的歌名、專輯名、播放連接。json

由淺入深,層層遞進,很是適合剛入門的同窗練手。服務器

【2、須要的庫】微信

主要涉及的庫有:requests、json、openpyxl網絡

【3、項目實現】學習

1.瞭解 QQ 音樂網站的 robots 協議網站

只禁止播放列表,能夠操做。url

2.進入 QQ 音樂主頁 y.qq.com/3d

3.輸入任意歌手,好比鄧紫棋orm

4.打開審查元素(快捷鍵 Ctrl+Shift+I)

5.分析網頁源代碼 Elements,發現無歌曲信息,沒法使用 BeautifulSoup,以下圖所示,結果爲空。

6.點擊 Network,看數據在不在 XHR(無刷新更新頁

面),個人經驗是先看 Size 最大的,而後分析 Name,

查看 Preview,果真在裏面!

7.點擊 Headers,拿到相關參數。以下圖,仔細觀察

url 與 Query String Parameters 參數的關係,發現

url 中的 w 表明歌手名,p 表明頁數。

8.經過 json 代碼實現,首先小試牛刀,爬取第一頁

的數據,url 直接複製過來。成功!

9.引入 params 參數,實現指定歌手、指定頁數的查詢。

注意代碼url爲上一步url中「?」以前的部分, params兩邊的參數都須要加 ’’,requests.get 添加 params,參數(也可順便添加 headers 參數)

  1. 添加存儲功能,保存到本地(Excel)。也可保存爲 csv 格式或存入數據庫,操做相似。

【4、總結】

1.爬取 QQ 音樂比爬取豆瓣等網站稍難,所需信息不在網頁源代碼,需查看 XHR;

2.經過 XHR 爬取數據通常要使用 json,格式爲:

* * * res = requests.get(url)

json = res.json()

list = json[‘’][‘’]…

3.僅供練手參考,不建議爬取太多數據,給服務器增大負載;

4.Python 爬取 QQ 音樂數據(二)將爲你們帶來如何爬取指定歌曲的歌詞及評論(selenium),並生成詞雲圖(wordcloud),敬請期待。

5.須要本文源碼的話,請在公衆號後臺回覆「QQ音樂」四個字進行獲取。

看完本文有收穫?請轉發分享給更多的人

IT共享之家

入羣請在微信後臺回覆【入羣】

想學習更多Python網絡爬蟲與數據挖掘知識,可前往專業網站:pdcfighting.com/

相關文章
相關標籤/搜索