今天想起自己之前一直想做自己的音乐播放器APP,用来替代现在臃肿的网易云音乐。一方面自己做不会有广告和很多没必要的功能,另一方面现在的网易云音乐很多歌版权没有,下载太多音乐APP也不方便。
面临的问题
其实最大的问题就是音乐资源的问题,自己建音乐库是基本不可能的。只能通过爬取音乐网站获得最重要的音乐资源链接(我一直觉得这种链接应该是动态的,这样就不是很好处理)。今天发现现在的音乐站点URL越来越优雅了,其实就是急速低音质的资源基本是可以很容易被获取到的(无损音质暂时就不考虑了)。这大概也解释了wordpress会有Hermit播放器这种东西,毕竟各家的音乐资源容易获得,套个外壳就可以做成精美的播放器了。
网易云音乐资源的爬取
说起爬虫Python肯定首选了,毕竟简单方便。下面的代码直接从CSDN的博客上粘贴来。Beautiful Soup 解析Html真是做到保姆式的服务。
#encoding=utf8
import requests
from bs4 import BeautifulSoup
import urllib.request
headers = {
'Referer':'http://music.163.com/',
'Host':'music.163.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
}
#play_url = 'http://music.163.com/playlist?id=317113395'
play_url = 'http://music.163.com/playlist?id=2182968685'
s = requests.session()
response=s.get(play_url,headers = headers).content
s = BeautifulSoup(response,'lxml')
main = s.find('ul',{'class':'f-hide'})
for music in main.find_all('a'):
print('{} : {}'.format(music.text, music['href']))
基本就是从一个歌单id,可以拿到所有音乐的id。
音乐资源url就是http://music.163.com/song/media/outer/url?id=歌曲id.mp3。
Comments | NOTHING