生活随笔
收集整理的这篇文章主要介绍了
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) { 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 ();
利用后,如下:
public String getText(String url)throws ParserException{ StringBean sb = new StringBean(); sb.setLinks(false); sb.setReplaceNonBreakingSpaces(true); sb.setCollapse(true); sb.setURL(url); return sb.getStrings(); }
便可以解析出网页中的纯文本信息,而且效果很好
总结
以上是生活随笔为你收集整理的HtmlParser提取网页中的纯文本信息的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。