HtmlParser提取网页中的纯文本信息-java

 from:http://perfectlife.javaeye.com/blog/366084

HtmlParser提取网页中的纯文本信息

文章分类:Java编程 关键字: 如何使用htmlparser提取网页中的纯文本信息
    HTMLParser 一个解析web页面的开源类库。 
    
    准备学习下搜索方面的技术,就学习了些网络爬虫的知识。最近一直在一个点上困惑,如何提取一个网页上的纯文本信息。要使用正则表达式的话呢,需要考虑很多因素,而且标签也太多,不是很方便,效果也不好。就准备利用开源包,最后选择了HtmlParser。 

    在网上搜索如何利用HtmlParser提取页面信息。提取的结果都不是很理想,都包含了很多无用空格信息,还有很多JS代码。 

如利用如下的代码: 
Java代码
  1. public void getWebPageContent(String htmlContent) {  
  2.   
  3.         Parser parser = new Parser();  
  4.         try {  
  5.             parser.setInputHTML(htmlContent);  
  6.             parser.setEncoding(parser.getURL());  
  7.             HtmlPage page = new HtmlPage(parser);  
  8.             parser.visitAllNodesWith(page);  
  9.   
  10.             logger.info(page.getTitle());  
  11.   
  12.             NodeList list = page.getBody();  
  13.   
  14.             StringBuffer sb = new StringBuffer();  
  15.             for (NodeIterator iterator = list.elements(); iterator  
  16.                     .hasMoreNodes();) {  
  17.                 Node node = iterator.nextNode();  
  18.                 logger.info(node.toPlainTextString());  
  19.   
  20.         } catch (ParserException e) {  
  21.             // TODO Auto-generated catch block  
  22.             e.printStackTrace();  
  23.         }  
  24.     }  

就包含了很多的空格信息以及JS代码。 


后来在HTMLParser的API中的org.htmlparser.beans.StringBean类的描述中找到如下一段文字:
 
Java代码
  1. Extract strings from a URL.   
  2.   
  3. Text within <SCRIPT></SCRIPT> tags is removed.  
  4.   
  5. The text within <PRE></PRE> tags is not altered.  
  6.   
  7. The property Strings, which is the output property is null until a URL is set. So a typical usage is:  
  8.   
  9.      StringBean sb = new StringBean ();  
  10.      sb.setLinks (false);  
  11.      sb.setReplaceNonBreakingSpaces (true);  
  12.      sb.setCollapse (true);  
  13.      sb.setURL ("http://www.netbeans.org"); // the HTTP is performed here  
  14.      String s = sb.getStrings ();  
  15.    


利用后,如下: 
Java代码
  1. /** 
  2.      * 根据提供的URL,获取此URL对应网页的纯文本信息 
  3.      * @param url 提供的URL链接 
  4.      * @return RL对应网页的纯文本信息 
  5.      * @throws ParserException 
  6.      */  
  7.     public String getText(String url)throws ParserException{  
  8.         StringBean sb = new StringBean();  
  9.           
  10.         //设置不需要得到页面所包含的链接信息  
  11.         sb.setLinks(false);  
  12.         //设置将不间断空格由正规空格所替代  
  13.         sb.setReplaceNonBreakingSpaces(true);  
  14.         //设置将一序列空格由一个单一空格所代替  
  15.         sb.setCollapse(true);  
  16.         //传入要解析的URL  
  17.         sb.setURL(url);  
  18.         //返回解析后的网页纯文本信息  
  19.         return sb.getStrings();  
  20.     }  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值