原标题:Github获8300星!用Python开发的一个命令行的网易云音乐

最近在逛Github发现了一个非常有趣的库musicbox,是用纯Python打造的,收获了8300颗星。Python语言简单易学,好玩有趣,身边越来越多的小伙伴都开始学习Python。她的魅力非常大,不仅长期霸占了编程排行榜前三,而且拥有数以万计的开源库,这些轮子可以组合运用,创造出很多好玩有趣的项目。

今天我们就来看一下这个酷酷的项目,一个命令行版本的网易云音乐,界面整洁漂亮,功能强大,值得学习!

一共有17个功能,真的是麻雀虽小五脏俱全,加了很多的功能:

320kbps的高品质音乐

歌曲,艺术家,专辑检索

网易22个歌曲排行榜

网易新碟推荐

网易精选歌单

网易主播电台

私人歌单,每日推荐

随心打碟

本地收藏,随时加❤

播放进度及播放模式显示

现在播放及桌面歌词显示

歌曲评论显示

一键进入歌曲专辑

定时退出

Vimer式快捷键让操作丝般顺滑

可使用数字快捷键

可使用自定义全局快捷键

作者是一位张同学,看他的location是在上海。这个项目是用纯Python代码完成的,目前收获了8300颗星,非常厉害!竟然能把网易云音乐上的功能做了一个命令行界面,了不起,关键是界面还做的很酷!

其实小编也是一个资深网易云音乐的爱好者,看到这个项目非常亲切,迫不及待的安装体验了一把。

1

安装使用

虽然这个是一个命令行版的网易云音乐,但是播放器是不能省的,需要安装一个播放器mpg123,这个库其实就是对MPEG 播放和解码用的,我的是Mac 电脑,所以直接用brew安装。

macOS安装

$ pip(3) install NetEase-MusicBox

$ brew install mpg123

用pip3 直接安装这个库,安装的有点慢,因为需要安装几个包:

requests

requests-cache

pycryptodomex

future

2

主界面介绍

1).直接在终端敲 musicbox就可以启动了

$ musicbox

2).看一下主界面:

这里罗列了网易云音乐的9大功能,涵盖了我们的PC版本上的大部分功能,比如排行榜,艺术家,还有我喜欢的主播电台,私人FM ,每日歌单等等。

大家对比一下,是不是大部分的功能,这个命令行界面都实行了。

3).强大的子菜单

上面这个其实是主菜单,进入的话每一个菜单里面都有子菜单和详细的功能,比如我们进入排行榜这个菜单:

里面有很多榜单,这个跟我们的PC版的网易云是一样的数据。我们选择第一个云音乐榜单进去看一下:

里面会列出上榜的金曲,按键盘上面的"J"和"K" 可以快速的进行光标的上下移动,一共排行榜有99首歌曲。

当光标在这个歌曲上停留的时候,整个这个歌曲的名字会进行滚动,这一点作者做的非常贴心。因为有的名字非常长,演唱者的人很多。

3

播放歌曲

上面是简单的介绍了一下这个界面的使用,如何播放歌曲呢? 其实非常简单,只要选择对应的歌曲,然后按一下回车键就会播放了。而且还可以看到这首歌曲的点评信息,比如这首欧阳娜娜的“The Best for you”

里面会罗列114条歌曲的短评,每一页大概显示10页的数据。

4

看一下源码

这个项目整个的思路 ,底层是用爬虫去爬取网易云上的数据,然后用命令行去呈现出来,用一个进程去获取用户的输入,然后进行相应!如果你用Flask或者Django去包装,搭建一个迷你小网站,那就是网站版的网易云音乐。

目前这个库的源码大概有3-4000行,大部分代码都是作者2年前就完成的。整个代码写的还是蛮工整的,每个模块分工非常清晰,进去看每个文件,作者代码写的很整洁,条理也很清晰。

整个项目的启动入口就在__main__.py文件里面:

其实这个主程序就干四件事:

一个是检查argparse的命令行的参数的输入;

另外一个就是启动主界面的菜单menu;

最后fork一个进程,启动menu模块里面的start_fork形成一个死循环,等待用户的键盘输入;

如何出现异常或者用户终止退出就退出整个程序。

其中比较核心的文件主要是 api.py,menu.py和play.py这几个文件。menu.py里面start就是整个项目的一个永动机,而api.py主要做的就是爬虫的功能,如果对网易云音乐爬取有兴趣的可以研究一下这个文件。play文件主要是对歌曲进行播放控制的。

有兴趣的小伙伴可以下载一下这个库,好好学习一下。相信对你的功力提升一定大有裨益,如果你对这个源码有兴趣,欢迎留言区吱一声。

项目链接:

https://github.com/darknessomi/musicbox返回搜狐,查看更多

责任编辑:

python网络爬虫网易云音乐guihub_Github获8300星!用Python开发的一个命令行的网易云音乐...相关推荐

  1. python获取键盘输入能不能不按回车键_Github获8300星!用Python开发的一个命令行的网易云音乐...

    最近在逛Github发现了一个非常有趣的库musicbox,是用纯Python打造的,收获了8300颗星.Python语言简单易学,好玩有趣,身边越来越多的小伙伴都开始学习Python.她的魅力非常大 ...

  2. python网络爬虫的基本步骤-十分钟教会你用Python写网络爬虫程序

    在互联网时代,爬虫绝对是一项非常有用的技能.借助它,你可以快速获取大量的数据并自动分析,或者帮你完成大量重复.费时的工作,分分钟成为掌控互联网的大师. 注意:欲获取本文所涉及的文案,代码及教学视频的链 ...

  3. Python网络爬虫数据采集实战:Scrapy框架爬取QQ音乐存入MongoDB

    ​    通过前七章的学习,相信大家对整个爬虫有了一个比较全貌的了解 ,其中分别涉及四个案例:静态网页爬取.动态Ajax网页爬取.Selenium浏览器模拟爬取和Fillder今日头条app爬取,基本 ...

  4. Python网络爬虫数据采集实战(八):Scrapy框架爬取QQ音乐存入MongoDB

    通过前七章的学习,相信大家对整个爬虫有了一个比较全貌的了解 ,其中分别涉及四个案例:静态网页爬取.动态Ajax网页爬取.Selenium浏览器模拟爬取和Fillder今日头条app爬取,基本涵盖了爬虫 ...

  5. python网络爬虫教程-终于明了python网络爬虫从入门到实践

    Python是一款功能强大的脚本语言,具有丰富和强大的库,重要的是,它还具有很强的可读性,易用易学,非常适合编程初学者入门.以下是小编为你整理的python网络爬虫从入门到实践 环境配置:下载Pyth ...

  6. python爬虫实例教程-Python网络爬虫实例教程(视频讲解版)

    第1章 网络爬虫概述 1 1.1 认识网络爬虫 1 1.1.1 网络爬虫的含义 1 1.1.2 网络爬虫的主要类型 2 1.1.3 简单网络爬虫的架构 3 1.1.4 网络爬虫的应用场景 3 1.2 ...

  7. python爬虫教程书籍-Python网络爬虫实例教程(视频讲解版)

    第1章 网络爬虫概述 1 1.1 认识网络爬虫 1 1.1.1 网络爬虫的含义 1 1.1.2 网络爬虫的主要类型 2 1.1.3 简单网络爬虫的架构 3 1.1.4 网络爬虫的应用场景 3 1.2 ...

  8. python爬虫教程-Python网络爬虫实例教程(视频讲解版)

    第1章 网络爬虫概述 1 1.1 认识网络爬虫 1 1.1.1 网络爬虫的含义 1 1.1.2 网络爬虫的主要类型 2 1.1.3 简单网络爬虫的架构 3 1.1.4 网络爬虫的应用场景 3 1.2 ...

  9. Python网络爬虫与信息提取笔记08-实例2:淘宝商品比价定向爬虫

    Python网络爬虫与信息提取笔记01-Requests库入门 Python网络爬虫与信息提取笔记02-网络爬虫之"盗亦有道" Python网络爬虫与信息提取笔记03-Reques ...

  10. 精通Python网络爬虫:核心技术、框架与项目实战(韦玮)pdf

    下载地址:网盘下载 为什么写这本书 网络爬虫其实很早就出现了,最开始网络爬虫主要应用在各种搜索引擎中.在搜索引擎中,主要使用通用网络爬虫对网页进行爬取及存储. 随着大数据时代的到来,我们经常需要在海量 ...

最新文章

  1. 安装PHP5、PHP7
  2. VirtualBox压缩vmdk、vagrant打包box一口气全对
  3. QC安装与运行中的问题汇集
  4. 10 QM配置-检验计划配置-维护检验批来源并分配检验类型
  5. Linux之whereis命令
  6. ModuleNotFoundError: No module named 'tornado'解决办法
  7. 数据库系统概论第五版(第 5 章 数据库完整性)笔记
  8. Windows Terminal美化增强指南
  9. 阅读html查看器,手机HTML查看器
  10. css字体居中(css字体居中对齐)
  11. 打印程序HELLOWORLD
  12. 【通信工程】大三下课程设计-5G核心网功能设计与部署
  13. 深入Unreal蓝图开发:实现蓝图模板函数
  14. 区块链的隐私保护问题
  15. 考研 | 组成原理【第二章】数据的表示和运算
  16. IM 朋友圈后台存储设计
  17. 程序报错误Illegal instruction的解决办法
  18. Tengine-Kit人脸检测及关键点
  19. MUR860D-ASEMI快恢复二极管的作用
  20. 备注: ubt 16.04 安装 gtx 1060 --- 成功运行 tensorflow - gpu

热门文章

  1. 1小时搞懂 Git 版本控制
  2. Python 矩形法求sin(x)的定积分(完美实现)
  3. Java软件开发技术交流群
  4. Win7下64位扫雷逆向以及辅助制作
  5. jspstudy oracle,jspStudy环境下搭建网站
  6. ROS下usb_cam的安装
  7. 78M05-ASEMI三端稳压管78M05
  8. 讨论8QAM及16QAM的星座模型
  9. PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
  10. 南方cass快捷键命令修改在哪_南方CASS操作快捷命令