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

📄 videoinfoparser.java

📁 模拟的土豆网视频网站
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			pageParser=Parser.createParser(midClearNL.toHtml(), Constant.CHARSET_GB2312);
			NodeList pNL=pageParser.parse(FILTER_P);
			if(pNL !=null && pNL.size()>0){								
					Node pNode=pNL.elementAt(0);						
					pageParser=Parser.createParser(pNode.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("主播	:"+link.getLinkText());                      
					}
					Node pNode2=pNL.elementAt(1);				     //头衔		
					if(pNode2 !=null && !pNode2.equals("")){
						String str2=pNode2.getChildren().elementAt(0).getText();					
System.out.println("头衔	:"+str2.substring(str2.indexOf(":")+1));
                      videoinfo.setHeadTitle(str2.substring(str2.indexOf(":")+1));
					}
					Node pNode3=pNL.elementAt(2);		            // 鲜花数
					pageParser=Parser.createParser(pNode3.toHtml(), Constant.CHARSET_GB2312);		
					NodeList spanNL=pageParser.parse(FILTER_SPAN);
					if(spanNL !=null && spanNL.size()>0){
						Node spanNode=spanNL.elementAt(0);
System.out.println("鲜花数:"+spanNode.getFirstChild().getText());
                      videoinfo.setFlowerNub(Integer.parseInt(spanNode.getFirstChild().getText()));
					}

					Node pNode5=pNL.elementAt(15);                // falsh地址	
					if(pNode5 !=null && !pNode5.equals("")){
					pageParser=Parser.createParser(pNode5.toHtml(), Constant.CHARSET_GB2312);		
					NodeList inputNL=pageParser.parse(FILTER_INPUT);
					if(inputNL !=null && inputNL.size()>0){
						InputTag input=(InputTag)inputNL.elementAt(0);
System.out.println("falsh地址:"+input.getAttribute("value"));
                       videoinfo.setFlashAddress(input.getAttribute("value"));
					}								
			        }
			}
			pageParser=Parser.createParser(page, Constant.CHARSET_GB2312);			
			NodeList morevinfoNL=pageParser.parse(FILTER_DIV_MOREVINFO);
			if(morevinfoNL !=null && morevinfoNL.size()>0){
				  Node node=morevinfoNL.elementAt(0);
				  if(node !=null ){
		               String str2=node.getChildren().elementAt(0).getText();    //主播简介                              
System.out.println("主播简介 :"+str2.substring(str2.indexOf(":")+1)); 
                      videoinfo.setIntroduction(str2.substring(str2.indexOf(":")+1));
                       String str3=node.getChildren().elementAt(2).getText();    //上传时间                       
System.out.println("上传时间  :"+str3.substring(str3.indexOf(":")+1)); 
                      
                      videoinfo.setUploadTime(new MySuperDate(str3.substring(str3.indexOf(":")+1),false).getDate());
				  } 				          
			}			
		}		            
		} catch (ParserException e) {			
			e.printStackTrace();
		}
		}
		return videoinfo;
	}
	/**
	 *     导演(Director)信息 
	 */
	/* private static VideoInformation directorParse(String url){
		String page =HttpUtil.request(url, Constant.CHARSET_GB2312);
		VideoInformation videoinfo = new VideoInformation();
		if( page !=null ){
		Parser pageParser = Parser.createParser(page, Constant.CHARSET_GB2312);		
		try {
			NodeList nl = pageParser.parse(FILTER_P_CONTENT) ;
			pageParser = Parser.createParser(nl.toHtml(), Constant.CHARSET_GB2312);
			NodeList ddNL = pageParser.parse(FILTER_DD) ;
			if(ddNL !=null && ddNL.size()>0){								
					System.out.println(spanNL.elementAt(0).getChildren().elementAt(1).toPlainTextString());	
					System.out.println(spanNL.elementAt(1).getChildren().elementAt(1).toPlainTextString());
				Node ddNode=ddNL.elementAt(0);             //导演名称
				if(ddNode != null){
System.out.println("名称: "+ddNode.getChildren().elementAt(1).toPlainTextString());	
				}
				Node ddNode2=ddNL.elementAt(1);          //导演头衔
				if(ddNode2 != null){
System.out.println("头衔: "+ddNode2.getChildren().elementAt(1).toPlainTextString());	
                    videoinfo.setHeadTitle(ddNode2.getChildren().elementAt(1).toPlainTextString());
				}
				Node ddNode3=ddNL.elementAt(2);            //勋章数
				pageParser = Parser.createParser(ddNode3.toHtml(), Constant.CHARSET_GB2312);
				NodeList spanNL = pageParser.parse(FILTER_SPAN);
				if(spanNL !=null && spanNL.size()>0){					
						Node spanNode = spanNL.elementAt(2);
System.out.println("勋章数: "+spanNode.getChildren().elementAt(0).toPlainTextString());	
                   videoinfo.setFlowerNub(Integer.parseInt(spanNode.getChildren().elementAt(0).toPlainTextString()));
				}
				Node ddNode4=ddNL.elementAt(3); 	     //人气	
				if(ddNode4 !=null){
System.out.println("人气	:"+ddNode4.getChildren().elementAt(2).toPlainTextString());	
                   videoinfo.setVideoTitle(ddNode4.getChildren().elementAt(2).toPlainTextString());
				}				
			}
			pageParser = Parser.createParser(page, Constant.CHARSET_GB2312);			
			NodeList vinfoNL = pageParser.parse(FILTER_DIV_VINFO) ;
			pageParser = Parser.createParser(vinfoNL.toHtml(), Constant.CHARSET_GB2312);
			NodeList pNL = pageParser.parse(FILTER_P) ;			
			if( pNL !=null && pNL.size()>0){
				Node pNode=pNL.elementAt(0);                // 简介
				if(pNode !=null){
					String str=pNode.toPlainTextString();
System.out.println("简介:"+str.substring(str.indexOf(":")+1)); 
                     videoinfo.setIntroduction(str.substring(str.indexOf(":")+1));
				}			
				Node pNode2=pNL.elementAt(1);              //上传日期    
				if(pNode2 !=null){
					String str=pNode2.toPlainTextString();
System.out.println("上传日期 : "+str.substring(str.indexOf(":")+1));
                    videoinfo.setUploadTime(new MySuperDate(str.substring(str.indexOf(":")+1),false).getDate());
				}
			}
			VideoInfoService.save(videoinfo);
		} catch (ParserException e) {		
			e.printStackTrace();
		}
	  }
		return videoinfo;
	}*/
	/**
	 *    抓取视频的标题
	 */
	private static void titleParse(String page ,VideoInformation videoinfo){
		
		if(page != null){
		Parser pageParser = Parser.createParser(page, Constant.CHARSET_GB2312);
		try {
			NodeList nl = pageParser.parse(FILTER_DIV_TITLE3);
			if(nl !=null && nl.size()>0){
				videoinfo.setVideoTitle(nl.elementAt(0).getChildren().elementAt(1).toPlainTextString());
System.out.println("标题:"+nl.elementAt(0).getChildren().elementAt(1).toPlainTextString());
			}
		} catch (ParserException e){			
			e.printStackTrace();
		}
	  }
	}
	
	/**
	 *   
	 * @param args   一个视频的所有相关专辑信息   抓取一个页面的全部连接
	 */
	private static void getVideoAlbum(String url){		
		String page =HttpUtil.request(url, Constant.CHARSET_GB2312);
		if(page != null){
		Parser pageParser=Parser.createParser(page, Constant.CHARSET_GB2312);
		try {
			NodeList nl=pageParser.parse(FILTER_DIV_ALBUMIMG);			
			pageParser=Parser.createParser(nl.toHtml(), Constant.CHARSET_GB2312);
			NodeList aNL=pageParser.parse(FILTER_A);
			if(aNL !=null && aNL.size()>0){				
				for(int i=0;i<aNL.size();i++){					
					Node aNode=aNL.elementAt(i);						
					if(aNode !=null ){						
						LinkTag link=(LinkTag) aNode;
System.out.println("视频相关专辑的连接:"+link.getLink());
                       AlbumInfoParser.parse(link.getLink());                       
					}
				}
			}
			// 专辑图片下载			
			/*pageParser=Parser.createParser(nl.toHtml(), Constant.CHARSET_GB2312);
			NodeList imgNL=pageParser.parse(FILTER_IMG);
			if(imgNL !=null && imgNL.size()>0){
				for(int i=0;i<imgNL.size();i++){
					Node aNode=imgNL.elementAt(i);
					if( aNode !=null ){
						ImageTag img=(ImageTag) aNode;						
System.out.println("专辑图片地址:"+img.getImageURL());	
						//FileUtil.download(img.getImageURL());
					}
				}
			}*/			
		} catch (ParserException e) {			
			e.printStackTrace();
		} //catch (DownloadException e) {			
			//e.printStackTrace();
		//}
	   }
	}
	/**
	 * 
	 * @param url   获取视频相关专辑的页数
	 */ 
	private static void getVideoAlubmPages(String url){
		for(int i=0;i<50;i++){
			String url2=url+"&startat="+i*10;
			getVideoAlbum(url2);
			System.out.println(url2);
		}
	}
	/**
	 *   
	 * @param args   取得视频相关专辑的[查看全部]的地址	<p class="more"> 
	 * 调用 getVideoAlubmPages 方法
	 */
	public static void getVideoAlbumMore(String url){
		String  page=HttpUtil.request(url,  Constant.CHARSET_GB2312);
		if(page != null){
		Parser pageParser=Parser.createParser(page, Constant.CHARSET_GB2312);
		try {
			NodeList nl=pageParser.parse(FILTER_P_MORE);			
			pageParser=Parser.createParser(nl.elementAt(1).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("查看全部专辑地址:"+link.getLink());
				getVideoAlubmPages(link.getLink());
			}
		} catch (ParserException e){			
			e.printStackTrace();
		}
	  }
	}
	
	 /**
     * 
     * @param args  查询全部视频的方法
     */
   /*  public static void findAllVideoAddr(String addr){
    	 System.out.println(VideoInfoService.findByFlashAddr(addr));
     }
	*/
	public static void main(String[] args) {
		//http://www.56.com/w25/play_album-aid-6629357_vid-Mzc5NjQ4NjM.html
		//parse("http://www.56.com/w25/play_album-aid-6629357_vid-Mzc5NjQ4NjM.html");
		//parse("http://www.56.com/u39/v_Mzc5OTQ2NDQ.html");
		//directorParse("http://www.56.com/u39/v_Mzc5OTQ2NDQ.html");  // 导演信息
		// getVideoAlbum("http://so.56.com/index?type=album&key=%C9%F2%D1%F4+%BA%F3%BA%A3%D2%F4%C0%D6%BD%DA&op=or&sortby=4");
	
	  //	parse("http://www.56.com/u85/v_MzUzNjQxMDY.html");   // 美女主播
		 //getVideoAlubmPages("http://so.56.com/index?type=album&key=%C9%F2%D1%F4+%BA%F3%BA%A3%D2%F4%C0%D6%BD%DA&op=or&sortby=4");
		// getVideoAlbumMore("http://www.56.com/u51/v_Mzc5ODczNTI.html"); 
		//parse("http://www.56.com/u83/v_MzY3MTIwMDA.html");  //http://www.56.com/u73/v_MzgwMTc5OTg.html
		//titleParse("http://www.56.com/u30/v_MzgwODg3MDc.html");
		
		//http://www.56.com/u62/v_Mzc5NDgxMTU.html    雷区
		//parse("http://www.56.com/u62/v_Mzc5NDgxMTU.html");  //雷区
		
	   //  http://www.56.com/u47/v_Mzc5MDEwMjA.html
		//parse("http://www.56.com/u83/v_MzM3NTQxNDQ.html");
		//http://www.56.com/u66/v_MzYwNjMwNzE.html NBA 视频
		//parse("http://www.56.com/u67/v_MzQ3MDQ3MDQ.html");  
		//http://www.56.com/u62/v_Mzc4NDE0NTk.html 页面错误
		//parse("http://www.56.com/u62/v_Mzc4NDE0NTk.html");
		
		//http://www.56.com/u98/v_Mzc4MjI3NTE.html 白领
		//parse("http://www.56.com/u45/v_MzYyODgzMzA.html");
	}
}

⌨️ 快捷键说明

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