落电台音乐批量下载
in 工匠篇 with 0 comment and 437 views

落电台音乐批量下载

in 工匠篇 with 0 comment

落电台是我很喜欢的一个电台,也曾经在日志中不止一次的推荐过这个电台。这个网站上的音乐、文字、图片,无一不让我陶醉。

在本科四年中那段最奋斗最辛苦的日子,落网陪我一路走过。那些清早起来,听着电台开始一天编码的生活,是最充实最美丽的回忆。——感谢落网

可能是太过于喜欢,进而会变的依赖。在许多没有网的时候也希望能够有落网陪伴,于是萌生了将电台音乐下载到本地的想法(只是为了本地播放,希望大家也不要拿来商用)。

说干就干。

简单看下落网的网站结构,会发现基本格式都是主网址/music/期刊编号,而每一期的歌曲地址则是通过js代码动态加载的。于是一个简单的办法就是,先遍历每一期,然后将js代码动态加载的歌曲地址筛选出来,然后批量下载。

#期刊页面链接生成方法
def getUrl(num):
 url = 'http://www.luoo.net/music/'
 return url + getNum(num)

def readsrc(src):
 try:
 url = urllib2.urlopen(src)
 content = url.read()
 return content
 except:
 print 'readsrc error'
 return None
#歌曲详情js代码提取方法
def getSongs(content):
 p = re.compile(r'"title":"(?P<title>.*?)","artist":"(?P<artist>.*?)","album":"(?P<album>.*?)","mp3":"(?P<mp3>.*?)"',re.M)
 r = p.finditer(content)
 if r:
 return r
 else:
 return None

最后增加了提取期刊名并按照期刊号归类,并将其改为命令行工具,使用方法如下:


This program downloads music from www.luo.net .
Options include:
—version : Prints the version number
—help : Display this help
—a : Download all music from the first vol
-v[] : Download the specified vol
-r[] : Download the specified music
-p[] : The filepath where to save music


最终实现效果如下图:

image

完整源码地址:点击下载

「一键投喂 肥宅快乐水🥤!」

Xiaolei.Tech

谢谢老板,老板大气~

使用微信扫描二维码完成支付

Responses