⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 albuminfoparser.java

📁 模拟的土豆网视频网站
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                    if(fullcontentNL!=null && fullcontentNL.size()>0){
                    	Node  albumUrlNode= fullcontentNL.elementAt(0); 
                    	String str = albumUrlNode.toPlainTextString();
                    	if(str != null)                   		
                    	    albuminfo.setAlbumIntro(str.substring(str.indexOf(":")+1));
//System.out.println("专辑介绍:"+ str.substring(str.indexOf(":")+1));                    	
                    }                                     
                    Node liNode8 =  liNL.elementAt(7);      //专辑地址
                    pageParser=Parser.createParser(liNode8.toHtml(), Constant.CHARSET_GB2312);
                    NodeList albumUrlNL=pageParser.parse(FILTER_DIV_ALBUMURL);
                    if(albumUrlNL!=null && albumUrlNL.size()>0){
                    	for(int i=0;i<albumUrlNL.size();i++){
                    	Node  albumUrlNode= albumUrlNL.elementAt(i);   
                    	if(albumUrlNode != null){
                    		InputTag input = (InputTag) albumUrlNode.getChildren().elementAt(1);
                            albuminfo.setAlbumAddr(input.getAttribute("value"));
System.out.println("专辑地址:"+ input.getAttribute("value"));
                    	}                        
                        albumImgParse(page, albuminfo);       //专辑的图片  
System.out.println("*********************************");                                                                    
                    	}                   	                    	
                    }                   
			}  
		   userCreateParse(page,albuminfo);
	       List<?> videoList = getAlbumVideoParse(url);	  // 判断json 异常 有异常 返回空	
	       if(videoList!=null){
	    	   albuminfo = AlbumInfoService.save(albuminfo,videoList,keywordList);       //调用service 写入数据库	
			  //AlbumInfoService.save(albuminfo,keywordList);
	       }
		} catch (ParserException e) {			
			e.printStackTrace();
		}
	   }
	    return albuminfo;
	 }	
	 /**
	  *  
	  * @param url   单个专辑信息的图片
	  */
     private  static void albumImgParse(String page, AlbumInfo albuminfo){
    	 if(page != null){
    	 Parser pageParser=Parser.createParser(page, Constant.CHARSET_GB2312);    	
    	 try {
			NodeList nl=pageParser.parse(FILTER_DIV_SL);			
		    pageParser=Parser.createParser(nl.toHtml(), Constant.CHARSET_GB2312);
			NodeList imgNL=pageParser.parse(FILTER_IMG);			
			if(imgNL!=null && imgNL.size()>0){
				Node imgNode= imgNL.elementAt(0);
				if(imgNode instanceof ImageTag){
					ImageTag img=(ImageTag) imgNode;				
System.out.println("专辑图片地址:"+img.getImageURL());	
                    albuminfo.setImageUrl(img.getImageURL());                 // 保存 图片地址					
				}				
			}			
		} catch (ParserException e) {			
			e.printStackTrace();
		} 
       }
     }
     /**
      * 
      * @param url  专辑的相关视频
      * @return http://www.56.com/w98/album-aid-6563926.html
      * http://www.56.com/w33/album_v2/album_videolist.phtml?callback=albumV2.callback&aid=6617346&o=0
      */
     private static List<VideoInformation> getAlbumVideoParse(String url){    	  
    	 
    	 String str=url.substring(18, 21);
    	 String str2 = url.substring(url.lastIndexOf("-")+1, url.indexOf(".html"));
    	 String url2 = "http://www.56.com/"+str+"/album_v2/album_videolist.phtml?callback=albumV2.callback&aid="+str2+"&o=0";
    	 String html =HttpUtil.request(url2, Constant.CHARSET_GB2312);
    	 List<VideoInformation> list= null;
    	 if(html!=null){
			 html =html.substring(11);		
			 try { 
				 JSONObject jsonObj=JSONObject.fromObject(html);
				 JSONArray arr=JSONArray.fromObject(jsonObj.getString("data"));
				 list=new ArrayList<VideoInformation> ();
			    
			     for(int i=0;i<arr.size();i++){ 
				   String videoUrl="http://www.56.com/w31/play_album-aid-"+arr.getJSONObject(i).getString("album_id")
				                    +"_vid-"+arr.getJSONObject(i).getString("video_id")+".html"; //专辑相关视频的连接地址		
				   String imageStr = arr.getJSONObject(i).getString("video_cover");        // 图片      
				   String videoAuthor = arr.getJSONObject(i).getString("video_author");		//会员	  
				   String addTime  = arr.getJSONObject(i).getString("add_time");           //上传时间
				   String videoTitle =arr.getJSONObject(i).getString("video_title");       //标题
				   
				   VideoInformation video =new VideoInformation();
				   
				   video.setFlashAddress(videoUrl);
				   video.setSoureUrl(imageStr); 
				   video.setHeadTitle(videoAuthor);
				   
				   if (addTime != null )
					   video.setUploadTime(new MySuperDate(Long.parseLong(addTime)).getDate());
				   else 
					   video.setUploadTime(new Date());
				  
				   video.setVideoTitle(videoTitle);
				                                             //http://zhiliangrs.v.56.com
				   UserInfo user = UserInfoParser.parse("http://"+videoAuthor+".v.56.com/");  //写入用户id
				   if(user!=null) video.setUserId(user.getUserId());
				   else video.setUserId(0);				   
				  								              
				  /* try {
					   video.setNewUrl(FileUtil.download(imageStr));  // 专辑相关视频的图片下载         
					} catch (DownloadException e) {
						video.setNewUrl("");
						e.printStackTrace();
					}*/
				    list.add(video);  
				   
	System.out.println("**"+(COUNT++)+"**"+"视频连接地址:"+videoUrl);			   
	System.out.println("视频标题:"+videoTitle);
	//System.out.println("上传者:"+videoAuthor);	
	//System.out.println("上传时间:"+addTime);			
	//System.out.println("视频图片地址:"+imageStr);                                             
	System.out.println("****************************************");
				}
			 } catch (JSONException e) {				
				  e.printStackTrace();
				  return null;
			 }
    	 }
		 return list;
     }
     /**
      *  
      * @param url  抓取 用户连接地址
      */
     private static void userCreateParse(String page,AlbumInfo albuminfo){   	
    	 if(page != null){
		 Parser pageParser=Parser.createParser(page, Constant.CHARSET_GB2312);
		 try {
			NodeList nl=pageParser.parse(FILTER_DT);				
			if(nl !=null && nl.size()>0){
			    Node node=nl.elementAt(0);
			    pageParser=Parser.createParser(node.toHtml(), Constant.CHARSET_GB2312);
			    NodeList aNL=pageParser.parse(FILTER_A);
			    if(aNL !=null && aNL.size()>0){
			    	LinkTag link=(LinkTag) aNL.elementAt(0);
System.out.println("*********************************");			    	
System.out.println("用户连接地址:"+link.getLink());                                       
			    	UserInfo userInfo=UserInfoParser.parse(link.getLink());
			    	if(userInfo != null)  albuminfo.setUserId(userInfo.getUserId());
			    	else  albuminfo.setUserId(0);			    	
			    }
			}			
		} catch (ParserException e){			
			e.printStackTrace();
		}
       }
     }
     
     
	public static void main(String[] args) {
		parse("http://www.56.com/w97/album-aid-180489.html");
		//  问题地址 http://www.56.com/w77/album-aid-3583117.html  空页面
		//parse("http://www.56.com/w77/album-aid-3583117.html"); 
		// http://www.56.com/w37/album-aid-4201983.html  乱码
		//parse("http://www.56.com/w37/album-aid-4201983.html");
		
		 //getAlbumVideoParse("http://www.56.com/w57/play_album-aid-1228780_vid-MTgyNjEyODE.html");
		// getAlbumVideoParse("http://www.56.com/w57/album-aid-1228780.html");
		  // getVideo("http://www.56.com/w98/play_album-aid-6563926_vid-Mzc3NDYzMDQ.html");
		  //getAlbumVideoParse("http://www.56.com/w33/album_v2/album_videolist.phtml?callback=albumV2.callback&aid=6617346&o=0");
		/* String str="http://www.56.com/w98/album-aid-6563926.html";
		 String[] arr = str.split("/");
		//for(int i=0;i<arr.length;i++) 
			//System.out.println(arr[3]);
		// System.out.println(arr[4]);
		String str2=str.substring(32, str.length()-5);
	    System.out.println(str2);*/
		// userCreate("http://www.56.com/w98/album-aid-6563926.html"); 
		//findAllVideoAddr();
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -