闲的蛋疼,抓下音悦台的MV玩玩,昨晚研究到凌晨1点,现把代码分享与此,以作备忘,如果有涉及侵权,请音悦台通知我,我马上删除代码,哈哈!!!
//因为我发现音悦台的MV ID都是7位数字
int max = 9999999;
for(int i=0; i < max; i++) {
String videoId = i + "";
String html = HttpClientUtils.getHTML("http://www.yinyuetai.com/insite/get-video-info?flex=true&videoId=" + videoId);
//System.out.println(html);
if(html == null || "".equals(html) || html.indexOf("找不到编号为") >= 0) {
System.out.println("没有id={" + videoId + "}这个MV");
continue;
}
//音悦台VIP专享MV
Pattern pattern = Pattern.compile(".+(http://sh.yinyuetai.com/uploads/videos/common/[a-zA-Z0-9]+\\.mp4\\?(?!http).*?&vst=0Y).+");
Matcher matcher = pattern.matcher(html);
if(matcher.find()) {
String url = matcher.group(1);
System.out.println("id={" + videoId + "}VIP专享MV url:" + url);
} else {
//超清MV
pattern = Pattern.compile(".+(http://he.yinyuetai.com/uploads/videos/common/[a-zA-Z0-9]+\\.flv\\?(?!http).*?&vst=0Y).+");
matcher = pattern.matcher(html);
if(matcher.find()) {
String url = matcher.group(1);
System.out.println("id={" + videoId + "}超清MV url:" + url);
} else {
//高清MV
//.+(http://hd.yinyuetai.com/uploads/videos/common/[a-zA-Z0-9]+\\.flv\\?[^?]+&vst=0Y).+
pattern = Pattern.compile(".+(http://hd.yinyuetai.com/uploads/videos/common/[a-zA-Z0-9]+\\.flv\\?(?!http).*?&vst=0Y).+");
matcher = pattern.matcher(html);
if(matcher.find()) {
String url = matcher.group(1);
System.out.println("id={" + videoId + "}高清MV url:" + url);
} else {
//流畅MV
//.+(http://hc.yinyuetai.com/uploads/videos/common/[a-zA-Z0-9]+\\.flv\\?[^?]+&vst=0Y).+
pattern = Pattern.compile(".+(http://hc.yinyuetai.com/uploads/videos/common/[a-zA-Z0-9]+\\.flv\\?(?!http).*?&vst=0Y).+");
matcher = pattern.matcher(html);
if(matcher.find()) {
String url = matcher.group(1);
System.out.println("id={" + videoId + "}流畅MV url:" + url);
} else {
continue;
}
}
}
}
}
得到了MV视频的URL后,你可以先把URL全部写到一个txt文件里,然后就写个程序一行一行的读取URL去下载flv文件即可啦,这个大家我想都会吧,就跟下载jpg图片类似的,我就不多啰嗦了!!!效果图如下: