Python爬虫如何去抓取qq音乐的歌手数据?
自從學會爬蟲之后是不是有一種我什么都想爬一下的沖動?今天小千就來教大家如何去抓取qq音樂的歌手數據,項目實操多練習能更快提升自己哦。
今天的項目目標就是獲取 QQ 音樂指定歌手單曲排行指定頁數的歌曲的歌名、專輯名、播放鏈接,由淺入深,層層遞進,非常適合剛入門的同學練手。主要涉及的庫有:requests、json、openpyxl。
項目步驟
1.了解 QQ 音樂網站的 robots 協議(安全)
只禁止播放列表,可以操作
2.進入 QQ 音樂主頁
3.輸入任意歌手,比如張杰
4.打開審查元素(快捷鍵 Ctrl+Shift+I)
5.分析網頁源代碼 Elements,發現無歌曲信息,無法使用 BeautifulSoup,如下圖所示,結果為空。
6.點擊 Network,看數據在不在 XHR(無刷新更新頁面),我的經驗是先看 Size 最大的,然后分析 Name,查看 Preview,果然在里面!
將response格式化后顯示內容如上
7.點擊 Headers,拿到相關參數。如下圖,仔細觀察url 與 Query String Parameters 參數的關系,發現url 中的 w 代表歌手名,p 代表頁數
其中:p=1&n=10&w=%E5%BC%A0%E6%9D%B0
8.通過 json 代碼實現,首先小試牛刀,爬取第一頁的數據,url 直接復制過來。成功!
其中:分析json獲取歌曲列表,獲取播放鏈接
9.引入 params 參數,實現指定歌手、指定頁數的查詢。
注意代碼url為上一步url中“?”之前的部分, params兩邊的參數都需要加 ’’,requests.get 添加 params,參數(也可順便添加 headers 參數)
10.添加存儲功能,保存到本地(Excel)。也可保存為 csv 格式或存入數據庫,操作類似。
總結
爬取qq音樂比爬取豆瓣等網站稍難,所需信息不在源代碼中,需查看xhr。
通過xhr爬取數據一般要使用json,格式為:
res = requests.get(url),json = res.json(),list = json[’’][’’]
僅供練手參考,不建議爬取太多數據,給服務器增大負荷。
原文來自千鋒教育。
總結
以上是生活随笔為你收集整理的Python爬虫如何去抓取qq音乐的歌手数据?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java实例开发教程:SpringBoo
- 下一篇: 前端技术分享:Nginx负载均衡视频,基