网易云很多歌曲没有版权?抱歉,Python无视没有…

2019-03-13 23:35:47来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

但是有些小伙伴运行程序的时候会报错,所以本文主要讲以下相关问题:

安装Selenium

安装PhantomJS

文件命名问题

 这里的,教,程大家一起学习!在我的Python学习 qun:【前面9 8 4 】【中间6 3 2 】【后面5 7 9 】动动你的小指头把数字连起来即可,欢迎加入到学习队伍里,有许多正在提升自己的小伙伴, 大家对学习 Python编程有问题,可以随时问,大家多交流!

某些歌曲无法在线播放


 

 

本例环境

Python3

Selenium+PhantomJS

安装Selenium

若使用命令pip install selenium 或者 conda install selenium默认会安装selenium最新的版本(目前我的版本是3.14.*)


 

如果你本身使用的python2使用默认安装是没有问题的

运行程序报错如下:

UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead  warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '

报错原因是:

目前Selenium 已经弃用了 PhantomJS ,官方建议请使用火狐或者谷歌无界面浏览器

解决方法:

因为并不想改变代码,因此采用安装旧版本的Selenium

先卸载,再安装指定版本就ok了,这里使用2.48.0版本

pip install selenium==2.48.0

安装PhontomJS

下载地址http://phantomjs.org/download.html

选择相应的版本下载,解压缩到任何位置即可,但是需要将里面的文件夹bin添加至环境变量

例如我直接放在了D盘下,位置是D:\phantomjs-2.1.1-windows\bin


 

添加系统变量后,运行程序依然会提示需要添加至系统变量

保险起见,此时可以重启下电脑就ok啦

文件命名问题

本例中沿用爬取网易云音乐的歌单及歌曲的名称

但是在生成文件的时候会遇到特殊符号无法生成文件的情况

本例中对文件命名做了进一步优化考虑,即对于文件命名格式要求中不得出现的字符进行过滤,即以下字符:

\ / : * ? " < > |


 

这里有个坑,上面的9个特殊字符如果是在英文输入法下是不满足命名格式要求的,但是在中文输入法下是ok的,例如我生成的这个文件夹就是ok的


 

 

因此需要找到这些字符(在英文模式下输入)的Unicode编码

这里提供一个在线查询的工具https://unicode-table.com/cn/

在程序里将这些字符逐个筛除就好啦,这样的结果是保留了所有中文、数字、英文字母、以及其他语种和一些字符(这里我无法判断是否其他字符是合规的)


 

 

有些歌曲无法在线播放

因为版权或者其他原因,网易云上的一些歌曲变成了灰色,也就是无法在线播放,比如周董的很多歌曲


 

但是这些歌曲是有下载链接的,通过程序能够下载成***.mp3形式,但是只有68kb左右的大小并且无法打开正常播放,因此我们需要剔除掉这些无效的歌曲文件

本例中使用的判断界限是100kb,若是文件小于此值则删除


 

 

but

此方法也有极小概率的错杀,比如李荣浩的《贝贝》这首歌只有4s,整首歌曲64kb左右……


原文链接:https://www.cnblogs.com/qingdeng6359/p/10518742.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python网络请求库Requests,妈妈再也不担心我的网络请求了!

下一篇:Python助你抢红包!Python还没有做不到的事,除了生孩子!