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