手把手教你使用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 ... 
随机推荐
- python异常1
			异常的层次结构: BaseException [所有异常的基类] +-- SystemExit [解释器请求退出] +-- KeyboardInterrupt [用户中断执行(通常是输入^C)] +- ... 
- 慕零的黑夜-头条-第二期(CSDN)[导读:] CSDN的15个bug&用户意见(很大)  作者:qq3461896724
			首先介绍CSDN: 相信"金山词霸,金山打字通"许多人都用过,而金山副总监 创办了 "全球最大中文IT技术平台,成就一亿技术人"的CSDN(Chinese s ... 
- unix 密码破解,zip破解总结
			unix /etc/passwd 破解,假设的前两位是salt import crypt #数据比较 def password_crak(pass_word): salt = pass_word[0: ... 
- 关于服务器运维人员,该如何管理很多VPS呢?
			众所周知,服务器运营人员的工作内容,主要围绕着公司上下所有服务器.网络等硬件平台的运维工作,对每台服务器的状况,如磁盘.内存.网络.CPU等资源情况都要有明确的了解,还要定期对服务器进行巡检和修复,避 ... 
- Rocket - debug - TLDebugModuleOuter
			https://mp.weixin.qq.com/s/9nMo6IYmDCz7S-ALFx824g 简单介绍TLDebugModuleOuter的实现. 1. DebugModuleAccessTyp ... 
- jchdl - GSL实例 - DFlipFlop(D触发器)
			https://mp.weixin.qq.com/s/7N3avTxTd2ZUnAcKg4w3Ig D触发器对边沿敏感,只有当相应的边沿出现时,才会触发D的值传播到输出Q.  引自:htt ... 
- Spring Boot笔记(七) springboot 集成 JavaMail 实现邮箱认证
			个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.JavaMail 1.什么是JavaMail? JavaMail,顾名思义,提供给开发者处理 电子邮 ... 
- ASP.NET防止自己网站的资源被盗(通过IHttpHandler   带样例说明)
			我这里用的图片被盗举例子 一个正常的网页 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind ... 
- (Java实现) 组合的输出
			问题 B: [递归入门]组合的输出 时间限制: 1 Sec 内存限制: 128 MB 题目描述 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r < = n),我们 ... 
- Java实现 LeetCode 740 删除与获得点数(递推 || 动态规划?打家劫舍Ⅳ)
			740. 删除与获得点数 给定一个整数数组 nums ,你可以对它进行一些操作. 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数.之后,你必须删除每个等于 nums[ ... 
