json里面的list数据取不出来_手把手教你使用Python抓取QQ音乐数据(第一弹)

【一、项目目标】

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

由浅入深,层层递进,非常适合刚入门的同学练手。

【二、需要的库】

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

【三、项目实现】

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

80e9a5221aced55c21a95e82a2987224.png

只禁止播放列表,可以操作。

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

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

0125b3a24a0238d25dbcb443b1b893be.png

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

742c1da6d772e90907b3346ca1918a40.png

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

8dfb22ab3b8690203ac86d2312f9e8d7.png
70d1fc9899d8715dd1d0fc78ad3ec68f.png

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

面),我的经验是先看 Size 最大的,然后分析 Name,

查看 Preview,果然在里面!

a4eacf8f28519a5094ca84161702dd53.png
f26b9a3506dc9d1704fdd6c6382e6163.png

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

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

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

b90c162995d7776e805a0936f43f6496.png
50321fb57ac4e1aead6ff7b207cf4e9f.png

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

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

5b33d290783b0c0414a7b1cb49b53425.png
4c7cb7dbe64e4affd574725e9b14d19f.png

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

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

9465a79a8f0c3e22a9eefa3d385034b7.png

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

92dcf861a0e7a8193a7d43b47ffe4985.png
34ad24b255f4d9374b8198fc16a1a698.png
1185447d418a8ab4da23f83c15114a0c.png

【四、总结】

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/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值