手把手教你使用Python抓取QQ音乐数据(第一弹)

【1、项目目标】数据库

获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名、专辑名、播放连接。json

由浅入深,层层递进,很是适合刚入门的同窗练手。服务器


【2、须要的库】网络

主要涉及的库有:requests、json、openpyxlide


【3、项目实现】学习

1.了解 QQ 音乐网站的 robots 协议网站

dc3e867a56f64468af5dba1adc6b2ea0


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

2.进入 QQ 音乐主页 https://y.qq.com/spa

3.输入任意歌手,好比邓紫棋3d

3faec7e0c69243ef820be8e739b3eb8b


4.打开审查元素(快捷键 Ctrl+Shift+I)

b0a2a4189e034467ab11ebd4fb1bf8fd


5.分析网页源代码 Elements,发现无歌曲信息,没法使用 BeautifulSoup,以下图所示,结果为空。

c69c4172be0d4f18a338b18c94a07a2c


c414874066ca4b8f83a446c20dfc7a7a


6.点击 Network,看数据在不在 XHR(无刷新更新页

面),个人经验是先看 Size 最大的,而后分析 Name,

查看 Preview,果真在里面!

75cac38587a54a6692fc6804efeb25e3


c2acd34a479848b592c57cfe0d83de61


7.点击 Headers,拿到相关参数。以下图,仔细观察

url 与 Query String Parameters 参数的关系,发现

url 中的 w 表明歌手名,p 表明页数。

111aae9872aa426287090ee1923ea3ae


c3f0ab8c3b454c9d9e1d88a61e798ee3


8.经过 json 代码实现,首先小试牛刀,爬取第一页

的数据,url 直接复制过来。成功!

ecbfd057cb2b4b3395d271b69b520346


708a3e7bb36f4c40925c6d5b149a46fb


9.引入 params 参数,实现指定歌手、指定页数的查询。

注意代码url为上一步url中“?”以前的部分, params两边的参数都须要加 ’’,requests.get 添加 params,参数(也可顺便添加 headers 参数)

fc188791633044cab4905aa81cf11d91


10. 添加存储功能,保存到本地(Excel)。也可保存为 csv 格式或存入数据库,操做相似。

99f9bc5dc85946328e9c6bd773652da1


3db030f9142f4518874ba4ef13a23812


9245c84e00c1424c9374d4f26fb5fc8e



【4、总结】

1.爬取 QQ 音乐比爬取豆瓣等网站稍难,所需信息不在网页源代码,需查看 XHR;

2.经过 XHR 爬取数据通常要使用 json,格式为:

res = requests.get(url)
json = res.json()
list = json[‘’][‘’]…

3.仅供练手参考,不建议爬取太多数据,给服务器增大负载;

4.Python 爬取 QQ 音乐数据(二)将为你们带来如何爬取指定歌曲的歌词及评论(selenium),并生成词云图(wordcloud),敬请期待。

5.须要本文源码的话,请在公众号【IT共享之家】后台回复“QQ音乐”四个字进行获取。

看完本文有收获?请转发分享给更多的人

想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/

相关文章
相关标签/搜索