前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA中使用Htmlparse解析HTML文档

JAVA中使用Htmlparse解析HTML文档

作者头像
Hongten
发布2018-09-18 10:29:32
2.2K0
发布2018-09-18 10:29:32
举报
文章被收录于专栏:HongtenHongten
  1. import java.util.HashMap;  
  2. import java.util.Map;  
  3. import org.htmlparser.Node;  
  4. import org.htmlparser.NodeFilter;  
  5. import org.htmlparser.Parser;  
  6. import org.htmlparser.tags.LinkTag;  
  7. import org.htmlparser.util.NodeList;  
  8. import com.yao.http.HttpRequester;  
  9. import com.yao.http.HttpRespons;  
  10. /**
  11.  * JAVA中使用Htmlparse解析HTML文档,使用htmlparse遍历出HTML文档的所有超链接(<a>标记)。
  12.  * 
  13.  * @author YYmmiinngg
  14.  */
  15. public class Test {  
  16. public static void main(String[] args) {  
  17. try {  
  18. /* 首先我们先使用HttpRequester类和HttpRespons类获得一个HTTP请求中的数据(HTML文档)。 可以从(http://download.csdn.net/source/321516)中下载htmlloader,该库中有上述类;或从我的《JAVA发送HTTP请求,返回HTTP响应内容,实例及应用》一文中摘取上述两JAVA类的代码。htmlparse可以从(http://download.csdn.net/source/321507)中下载
  19. */
  20.             Map<String, String> map = new HashMap<String, String>();  
  21.             HttpRequester request = new HttpRequester();  
  22.             HttpRespons hr = request.sendGet("http://www.baidu.com");  
  23.             Parser parser = Parser.createParser(hr.getContent(), hr  
  24.                     .getContentEncoding());  
  25. try {  
  26. // 通过过滤器过滤出<A>标签
  27.                 NodeList nodeList = parser  
  28.                         .extractAllNodesThatMatch(new NodeFilter() {  
  29. //实现该方法,用以过滤标签
  30. public boolean accept(Node node) {  
  31. if (node instanceof LinkTag)//<A>标记
  32. return true;  
  33. return false;  
  34.                             }  
  35.                         });  
  36. // 打印
  37. for (int i = 0; i < nodeList.size(); i++) {  
  38.                     LinkTag n = (LinkTag) nodeList.elementAt(i);  
  39.                     System.out.print(n.getStringText() + " ==>> ");  
  40.                     System.out.println(n.extractLink());  
  41.                 }  
  42.             } catch (Exception e) {  
  43.                 e.printStackTrace();  
  44.             }  
  45.         } catch (Exception e) {  
  46.             e.printStackTrace();  
  47.         }  
  48.     }  
  49. }  
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011-03-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档