手把手教你使用Python抓取QQ音乐数据(第一弹)
【一、项目目标】
获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名、专辑名、播放链接。
由浅入深,层层递进,非常适合刚入门的同学练手。
【二、需要的库】
主要涉及的库有:requests、json、openpyxl
【三、项目实现】
1.了解 QQ 音乐网站的 robots 协议

只禁止播放列表,可以操作。
2.进入 QQ 音乐主页 https://y.qq.com/
3.输入任意歌手,比如邓紫棋
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 参数)

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


【四、总结】
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网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/
手把手教你使用Python抓取QQ音乐数据(第一弹)的更多相关文章
- 手把手教你使用Python抓取QQ音乐数据(第二弹)
[一.项目目标] 通过Python爬取QQ音乐数据(一)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 此次我们在之前的基础上获取QQ音乐指定歌曲的歌词及前15个精 ...
- 手把手教你用Python抓取AWS的日志(CloudTrail)数据
数据时代,利用数据做决策是大数据的核心价值. 本文手把手,教你使用python进行AWS的CloudTrail配置,进行日志抓取.进行数据分析,发现数据价值! 如今是云的时代,许多公司都把自己的IT架 ...
- 手把手教你使用Python爬取西刺代理数据(下篇)
/1 前言/ 前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),木有赶上车的小伙伴,可以戳进去看看.今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下. /2 首页分析 ...
- 使用python抓取并分析数据—链家网(requests+BeautifulSoup)(转)
本篇文章是使用python抓取数据的第一篇,使用requests+BeautifulSoup的方法对页面进行抓取和数据提取.通过使用requests库对链家网二手房列表页进行抓取,通过Beautifu ...
- Python抓取百度百科数据
前言 本文整理自慕课网<Python开发简单爬虫>,将会记录爬取百度百科"python"词条相关页面的整个过程. 抓取策略 确定目标:确定抓取哪个网站的哪些页面的哪部分 ...
- 使用浏览器抓取QQ音乐接口(排行榜篇)
前言 最近手头比较空闲,再加上看到其他人的博客都差不多有个类似的播放控件,手就会闲不下来,说干就干,所以我们开始吧! 来到QQ音乐的官网,我们就直奔着目标去,寻找排行榜 我们主要用的是最近比较热的歌, ...
- 使用浏览器抓取QQ音乐接口(歌曲篇)
前言 前面我们获取了歌曲的排行榜的数据,我们现在需要实现歌曲播放 前面我们写了一段函数来得到了回调的数据,现在我们需要使用这一段数据,来实现播放歌曲 完整代码 <!DOCTYPE html> ...
- 手把手教你用python抓网页数据
http://www.1point3acres.com/bbs/thread-83337-1-1.html
- python 抓取javascript 动态数据
1. 新安装一个python库 :~$ sudo pip install seleniumhq 2. 编写代码: 以获取百度百科点赞数为例 import selenium from selenium ...
随机推荐
- 【QT】利用pyqt5实现简单界面
Topic: 利用pyqt5编写简单界面Env:win10 + Pycharm2018 + Python 3.6.8Date: 2019/4/29 by hw_Chen2018 ...
- [PHP自动化-进阶]003.CURL处理Https请求访问
引言:继前文<模拟登录并采集数据>,<模拟登录带有验证码的网站>,大家对CURL基本上已经有了认识,这一讲简单的说一下请求Https. 在很多的站点,如TalkingData, ...
- python 05—字典
一.字典的键是唯一的 键:简单对象,例[字符串.整数.浮点数.bool值] list不能作为键,但可以作为值. 例: score = { '萧峰' : 95, '段誉' : 97, '虚竹' : 89 ...
- 1. vue文件结构
1)这是文件规则 <template> <div > </div> </template> <script> Name:"当前的名 ...
- Rocket - debug - dm registers
https://mp.weixin.qq.com/s/P48K17TyRoZC7xBMltbXKQ 简单介绍调试模块中每个寄存器的定义. 1. DMI_RegAddrs 记录DMI访问的各个寄存器的地 ...
- jchdl - RTL Event
https://mp.weixin.qq.com/s/P9uoJwIYdM-mbiR9WCtJCg hardware modeling基于事件驱动模型,RTL中定义了多种事件. jchdl 参考了 ...
- 【HBase】知识小结+HMaster选举、故障恢复、读写流程
1:什么是HBase HBase是一个高可靠性,高性能,面向列,可伸缩的分布式数据库,提供海量数据存储功能,一个结构化的分布式存储系统,不同于一般的关系型数据库,它适合半结构化和非结构化数据存储. 2 ...
- Java实现 蓝桥杯VIP 算法训练 非递归(暴力)
试题 算法训练 非递归 问题描述 当x>1时,Hermite多项式的定义见第二版教材125页.用户输入x和n,试编写"非递归"函数,输出对应的Hermite多项式的值.其中x ...
- Java实现 LeetCode 699 掉落的方块(线段树?)
699. 掉落的方块 在无限长的数轴(即 x 轴)上,我们根据给定的顺序放置对应的正方形方块. 第 i 个掉落的方块(positions[i] = (left, side_length))是正方形,其 ...
- Java实现 LeetCode 654 最大二叉树(递归)
654. 最大二叉树 给定一个不含重复元素的整数数组.一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素. 左子树是通过数组中最大值左边部分构造出的最大二叉树. 右子树是通过数组中最 ...