利用httpClient和htmlParse获取网页iframe数据

public static void main(String[] args) {	  
	  HttpClient client = new HttpClient();
	  HttpMethod method = new GetMethod("http://www.ln.gov.cn/video/video_57835_1/zydst/2011_99870/d12q/201401/t20140101_1249267.html");
	  try {
		  
		  client.executeMethod(method);
		  
		  Parser parser = new Parser(method.getResponseBodyAsString());  
		  NodeVisitor visitor = new NodeVisitorExtends();
		  parser.visitAllNodesWith(visitor);
		  
		  
		  method.releaseConnection();   
	} catch (IOException e) {
		e.printStackTrace();
	} catch (ParserException e) {
		e.printStackTrace();
	}
  }


 
  
/**
   * 定义内部类,获取抓取的网页数据中iframe的src包含http://的值。
   * 2014-08-14 16:52:10
   * @author pengyh
   *
   */
  private static class NodeVisitorExtends extends NodeVisitor {  
      public void visitTag(Tag tag) {  
    	  //只获取html中iframe节点的属性
          if(tag.getTagName().equalsIgnoreCase("iframe")){
        	  //获取该iframe中的src属性
        	  String srcUrl = tag.getAttribute("src");
        	  //只获取该src中包含有http://的值
        	  if(srcUrl.contains("http://")){
        		  logger.info("获取到iframe中包含http:的地址为[{}]", srcUrl);
        		  System.out.println(srcUrl);
        	  }
          }
      }  
  } 


定义的内部类NodeVisitorExtends,可以对抓取到的网页数据进行处理。测试中的为获取iframe中src的属性。


======================以上方法只能获取到flash播放器地址,如果正常的网页播放视频,wap页面使用