最近没啥好听的歌,准备给小虎子补充点好听的,于是就有了喜马拉雅mp3批量下载工具,喜欢的拿去用。
程序说明:
1、使用类写的,简洁明了。
2、取消使用lxml库解析,使用正则表达式获取数据。
3、程序尽可能多的给出了注释,喜欢的拿去研究。
4、可以自动获取专辑下面的所有专辑并下载。
5、取消使用脚本下载,单线程会卡住。
6、脚本只负责解析,剩下的事,交给其它工具下载。
喜马拉雅mp3解析工具:
#!/usr/bin/env python # -*- coding: utf-8 -*- # Date: 2016/10/10 # Created by 独自等待 # 博客 http://www.waitalone.cn/ import requests import json import sys import re import os reload(sys) sys.setdefaultencoding('utf-8') class ximalaya: def __init__(self, url): self.url = url # 传入的专辑URL,类似http://www.ximalaya.com/16960840/album/294567 self.urlheader = { 'Accept': 'application/json, text/javascript, */*; q=0.01', 'X-Requested-With': 'XMLHttpRequest', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36', 'Content-Type': 'application/x-www-form-urlencoded', 'Referer': self.url, 'Cookie': '_ga=GA1.2.1628478964.1476015684; _gat=1', } def getpage(self): '获取分页数方法' pagelist = [] # 保存分页数 try: response = requests.get(self.url, headers=self.urlheader).text.encode('utf-8') except Exception, msg: print u'网页打开出错,请检查!', msg else: reg_list = [ re.compile(r"class=\"pagingBar_wrapper\" url=\"(.*?)\""), re.compile(r"
关于多线程下载:
由于python的多线程下载,我研究的不深,所以实现起来比较麻烦,这里提供一种使用其它工具代替的方法,速度也很快。
http://www.waitalone.cn/aria2c-download.html
请点击上面的链接,去下载cmd下面的多线程工具,aria2c。
1、首先使用脚本解析你要下载的专辑,在cmd下执行如下命令:
ximalaya.py http://www.ximalaya.com/31240537/album/2867229
2、脚本会自动解析,并保存解析结果到 mp3.txt 失败的解析会保存在:analyze_false.txt
3、mp3.txt默认为utf-8格式,请重新保存为ansi格式,否则aria2c保存时文件名乱码。
4、将下面的代码保存为download.bat 然后双击即可自动多线程下载。
for /f "tokens=1,2 delims=|" %%i in (mp3.txt) do aria2c.exe -s 10 -j 10 %%j --out=%%iMAC OS可以使用下面的方式下载文件:
1、安装axel,可以使用brew install axel
2、使用ximalaya.py生成要下载的文件列表 mp3.txt
3、保存下面的代码为down.sh 增加执行权限,然后运行即可。
#!/bin/bash filename='mp3.txt' cat $filename | while read line do name=$(echo $line|cut -d "|" -f 1) url=$(echo $line|cut -d "|" -f 2) axel -a -n 10 $url -o "$name" done更新日志:
2016年3月11日更新,支持单条mp3地址解析
2016年3月13日更新,修复mp3总数计算错误, 增加限制下载数量。
2016年7月29日更新,使用正则获取数据,更加易用。
2016年10月10日更新,原有解析失效,重写代码,提高解析速度。
2016年12月8日更新, 增加MAC下多线程下载方法。
2017年5月3日更新, 修正windows下面mp3.txt乱码问题。
from www.waitalone.cn.thanks for it.
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论