15行Python代码实现网易云热门歌单实例教程


Posted in Python onMarch 10, 2019

0. 引言

马上314情人节就要来了,是否需要一首歌来抚慰你,受伤或躁动的心灵。来吧,今天教你用15行代码搞定热门歌单。学起来并听起来吧。

本文使用的是Selenium模块,它是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,对于一些 JavaScript 渲染的页面来说,此种抓取方式非常有效。另外采用了Chrome浏览器配合Selenium工作。

下面话不多说了,来一起看看详细的介绍吧

1. 环境

操作系统:Windows

Python版本:3.7.2

2. 准备工作

a. 若你的环境中没有selenium模块,直接使用pip安装即可。

pip install selenium

b. 打开谷歌浏览器,检查Chrome的版本:在浏览器地址中输入 chrome://settings/help 回车即可看到。

15行Python代码实现网易云热门歌单实例教程

c. 打开ChromeDriver 的官方网站:
https://sites.google.com/a/ch...
寻找与你当前浏览器版本相对应的ChromeDriver下载。

15行Python代码实现网易云热门歌单实例教程

d. 选择你自己的操作系统类型进行下载即可。

15行Python代码实现网易云热门歌单实例教程

e. 以Windows为例,下载结束后,将ChromeDriver 放置在python安装目录下的Scripts文件夹即可。

15行Python代码实现网易云热门歌单实例教程

准备工作完成,代码写起来吧~

3. 迷你爬虫的实现

我们这次的目标是爬取热门歌单,比如网易云音乐中播放量大于1000万的歌单信息(歌单名称、链接)。

a. 我们先来打开网易云的歌单第一页:
https://music.163.com/#/disco...

b. 使用Chrome的开发者工具<F12>进行分析。

15行Python代码实现网易云热门歌单实例教程

我们想要拿的信息全在这里:

  • msk,封面[mask]:有歌单的名称及链接
  • nb,播放数[number broadcast]:135万

c. 我们还需要遍历所有的页,使用工具继续分析,找到“下一页”的URL。

15行Python代码实现网易云热门歌单实例教程

d. 切换至最后一页,拿到最后一页的URL。

15行Python代码实现网易云热门歌单实例教程

e. 等我们爬取完所有符合的歌单信息后,将其保存在本地。

f. 全部工作结束,最后再通过下面的伪代码回顾下整体思路。

15行Python代码实现网易云热门歌单实例教程

g. 爬取的效果如下:

15行Python代码实现网易云热门歌单实例教程

4. 总结

本文旨在安抚你因情人节受伤的小心灵,同时带你入个爬虫的门,感受下python的强大。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python字符串的encode与decode研究心得乱码问题解决方法
Mar 23 Python
python持久性管理pickle模块详细介绍
Feb 18 Python
Windows下python2.7.8安装图文教程
May 26 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
Python实现钉钉发送报警消息的方法
Feb 20 Python
如何安装2019Pycharm最新版本(详细教程)
Sep 26 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
Nov 15 Python
使用Tkinter制作信息提示框
Feb 18 Python
python:解析requests返回的response(json格式)说明
Apr 30 Python
Python学习之路安装pycharm的教程详解
Jun 17 Python
keras用auc做metrics以及早停实例
Jul 02 Python
浅谈Python数学建模之固定费用问题
Jun 23 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 #Python
浅谈python的深浅拷贝以及fromkeys的用法
Mar 08 #Python
Python高级特性与几种函数的讲解
Mar 08 #Python
Python I/O与进程的详细讲解
Mar 08 #Python
举例讲解Python常用模块
Mar 08 #Python
python re库的正则表达式入门学习教程
Mar 08 #Python
opencv与numpy的图像基本操作
Mar 08 #Python
You might like
php页面消耗内存过大的处理办法
2013/03/18 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
webpack是如何实现模块化加载的方法
2019/11/06 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
python将控制台输出保存至文件的方法
2019/01/07 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
python如何实现图片压缩
2020/09/11 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
单位在职证明范本
2014/01/09 职场文书
《故乡》教学反思
2014/04/10 职场文书
初中英语演讲稿
2014/04/29 职场文书
小学班主任个人总结
2015/03/03 职场文书
2015年转正工作总结范文
2015/04/02 职场文书
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
python中取整数的几种方法
2021/11/07 Python
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL
Java实现带图形界面的聊天程序
2022/06/10 Java/Android
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS