欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2023/12/3 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 HtmlParser提取网页中的纯文本信息 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

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

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

如利用如下的代码: 

  • public void getWebPageContent(String htmlContent) {  
  •   
  •         Parser parser = new Parser();  
  •         try {  
  •             parser.setInputHTML(htmlContent);  
  •             parser.setEncoding(parser.getURL());  
  •             HtmlPage page = new HtmlPage(parser);  
  •             parser.visitAllNodesWith(page);  
  •   
  •             logger.info(page.getTitle());  
  •   
  •             NodeList list = page.getBody();  
  •   
  •             StringBuffer sb = new StringBuffer();  
  •             for (NodeIterator iterator = list.elements(); iterator  
  •                     .hasMoreNodes();) {  
  •                 Node node = iterator.nextNode();  
  •                 logger.info(node.toPlainTextString());  
  •   
  •         } catch (ParserException e) {  
  •             // TODO Auto-generated catch block  
  •             e.printStackTrace();  
  •         }  
  •     }  

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


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


  • 利用后,如下: 
  • /** 
  •      * 根据提供的URL,获取此URL对应网页的纯文本信息 
  •      * @param url 提供的URL链接 
  •      * @return RL对应网页的纯文本信息 
  •      * @throws ParserException 
  •      */  
  •     public String getText(String url)throws ParserException{  
  •         StringBean sb = new StringBean();  
  •           
  •         //设置不需要得到页面所包含的链接信息  
  •         sb.setLinks(false);  
  •         //设置将不间断空格由正规空格所替代  
  •         sb.setReplaceNonBreakingSpaces(true);  
  •         //设置将一序列空格由一个单一空格所代替  
  •         sb.setCollapse(true);  
  •         //传入要解析的URL  
  •         sb.setURL(url);  
  •         //返回解析后的网页纯文本信息  
  •         return sb.getStrings();  
  •     }  

  • 便可以解析出网页中的纯文本信息,而且效果很好  

    总结

    以上是生活随笔为你收集整理的HtmlParser提取网页中的纯文本信息的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。