java使用Jsoup解析html

Java 新民 1324℃ 已收录 2评论
      
     public class VideoUtil {
	
	/**
	 * 通过URL获取视频html源代码
	 * @author 赵新民
	 * @param url  视频地址
	 * @param encoding 字符集编码
	 * @return  返回html源代码
	 */
	public static String getHtmlResultByUrl(String url,String encoding){
		     StringBuffer sb=new StringBuffer();
		     InputStreamReader isr=null;
			try {
				//建立网络连接
				URL urlobj=new URL(url);
				//打开网络连接
				URLConnection uc=urlobj.openConnection();
				//创建文件输入流
				isr=new InputStreamReader(uc.getInputStream(), encoding);
				System.out.println("打印输入流为:"+isr);
				//建立文件缓冲写入流
				BufferedReader br=new BufferedReader(isr);
				String temp=null;
				while((temp=br.readLine())!=null){
					sb.append(temp+"\n");
				}
				
			} catch (MalformedURLException e) {
				// TODO Auto-generated catch block
				System.out.println("链接网络失败!");
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				System.out.println("打开链接失败!");
				e.printStackTrace();
			}finally{
				if(isr!=null){
					try {
						isr.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
			return sb.toString();
	}

  
     /**
	 * 解析优酷的源代码
	 * @author 赵新民
	 * @return HashMap
	 */
	public static HashMap getVideo(String html){
		HashMap map=new  HashMap();
		
		//使用jsoup组件解析通过url地址获取到的html
				Document doc = Jsoup.parse(html);
				
				//获取id="handle_share" 节点
				Element element = doc.getElementById("panel_share");
				
				//获取class="item"  节点
				Elements elements = element.getElementsByClass("item");
				
				int i=1;
				//遍历获取指定节点
				for (Element ele : elements) {
					Element e = ele.getElementById("link"+i);
					if(e!=null){
						map.put("link"+i, e.val());
					}
					i++;
				}
				
		
		return map;
	}

本站文章如未注明,均为原创丨本网站采用BY-NC-SA协议进行授权,转载请注明转自:https://www.snowruin.com/?p=1509
喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情 代码 贴图 加粗 链接 私信 删除线 签到

Hi,请填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)条精彩评论。
  1. 小苍MM2015-10-06 13:31 回复| unknow| unknow