`
lxwt909
  • 浏览: 565828 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

音悦台800多万MV视频抓取

阅读更多

       闲的蛋疼,抓下音悦台的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图片类似的,我就不多啰嗦了!!!效果图如下:

 
    

    

  • 大小: 88.8 KB
1
2
分享到:
评论
3 楼 lp1111111 2015-12-09  
有个工具curl,也有windwos或dos版的,可以下载文件中的url链接。感兴趣可以试下。
2 楼 她的酒窝 2015-11-12  
你好,博主,可以爬QQ音乐、网易音乐等收费平台的音乐吗?
1 楼 qq857358600 2015-10-20  

相关推荐

Global site tag (gtag.js) - Google Analytics