教你用Python爬虫抓取qq音乐歌手数据
自从学会爬虫之后是不是有一种我什么都想爬一下的冲动?今天小千就来教大家如何去抓取qq音乐的歌手数据,项目实操多练习能更快提升自己哦。
今天的项目目标就是获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名、专辑名、播放链接,由浅入深,层层递进,非常适合刚入门的同学练手。主要涉及的库有:requests、json、openpyxl。
项目步骤
1.了解 QQ 音乐网站的 robots 协议(安全)
只禁止播放列表,可以操作
2.进入 QQ 音乐主页
3.输入任意歌手,比如张杰
4.打开审查元素(快捷键 Ctrl+Shift+I)
5.分析网页源代码 Elements,发现无歌曲信息,无法使用 BeautifulSoup,如下图所示,结果为空。
6.点击 Network,看数据在不在 XHR(无刷新更新页面),我的经验是先看 Size 最大的,然后分析 Name,查看 Preview,果然在里面!
将response格式化后显示内容如上
7.点击 Headers,拿到相关参数。如下图,仔细观察url 与 Query String Parameters 参数的关系,发现url 中的 w 代表歌手名,p 代表页数
其中:p=1&n=10&w=%E5%BC%A0%E6%9D%B0
8.通过 json 代码实现,首先小试牛刀,爬取第一页的数据,url 直接复制过来。成功!
其中:分析json获取歌曲列表,获取播放链接
9.引入 params 参数,实现指定歌手、指定页数的查询。
注意代码url为上一步url中“?”之前的部分, params两边的参数都需要加 ’’,requests.get 添加 params,参数(也可顺便添加 headers 参数)
10. 添加存储功能,保存到本地(Excel)。也可保存为 csv 格式或存入数据库,操作类似。
总结
爬取qq音乐比爬取豆瓣等网站稍难,所需信息不在源代码中,需查看xhr。
通过xhr爬取数据一般要使用json,格式为:
res = requests.get(url),json = res.json(),list = json['']['']
仅供练手参考,不建议爬取太多数据,给服务器增大负荷
学习Python,可以参考千锋Python培训班推出的Python开发学习路线,结合千锋Python培训机构名师精心录制的全套Python视频教程,可以让你对学习Python需要掌握的知识有个清晰的了解,并快速入门Python开发。千锋Python培训机构视频教程分为三个大块:Python基础视频教程、Python高级视频教程、Python高手晋级视频教程。视频讲解通俗易懂,入门Python开发仅用此套视频足矣。想要获取免费Python学习路线和学习资料可以添加我们的Python技术交流qq群:790693323 加群找群管理领取即可,Python相关技术问题也可以加群解决,等你来哦~~~~

猜你喜欢LIKE
相关推荐HOT
更多>>
python怎么开发web
Python有多种框架可以用于Web开发。以下是一些常用的PythonWeb框架:1.Django:Django是一个功能强大的Web开发框架,提供了完整的MVC(模型-视图...详情>>
2023-06-15 09:06:25
python常见异常类型
Python中常见的异常类型包括但不限于以下几种:1.`SyntaxError`:语法错误,通常是由于代码编写不符合Python的语法规则导致的。2.`IndentationE...详情>>
2023-06-14 15:55:49
python中print()函数该怎么用
在Python中,`print()`函数用于将指定的值输出到标准输出设备(通常是控制台)。它是一个内置函数,可以在Python程序中使用。`print()`函数的基本...详情>>
2023-06-07 15:19:45
Python中的复杂if语句
在Python中,if语句可以包含相当复杂的逻辑和条件。以下是一些用于构建复杂if语句的有用技巧:1.使用括号以改善可读性:额外的括号可以使if语句...详情>>
2023-04-20 15:52:04
正则化是什么意思?正则化技术解析
正则化(Regularization)是一种用于解决过拟合问题的机器学习技术,采用一种惩罚项来平衡模型的复杂度和性能,减少模型的泛化误差。在机器学习中...详情>>
2023-04-11 13:39:34Python培训问答更多>>
新爬虫软件是什么?就业前景如何
新Python指的是什么?就业前景如何
新python培训课程费用大概是多少?
新python爬虫是什么?基本概念和类型解析
新学python有什么用?对职业发展有实际性帮助吗
新学会python能干什么?python学习需要注意什么
新学c语言还是python?哪个学得快
Python面试题库 更多>>
Python中的pass语句是什么?
怎样将字符串转换为小写?
怎么移除一个字符串中的前导空格?
python中的标识符长度能有多长?
Python区分大小写吗?
解释Python中的join()和split()函数
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区
