网站开发岗位需求分析,广东阳江网络问政平台,学校微网站模板,做网站很简单转载自 HtmlParser提取网页中的纯文本信息HTMLParser 一个解析web页面的开源类库。 准备学习下搜索方面的技术#xff0c;就学习了些网络爬虫的知识。最近一直在一个点上困惑#xff0c;如何提取一个网页上的纯文本信息。要使用正则表达式的话呢#xff0c;需要考…转载自 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(); } 便可以解析出网页中的纯文本信息而且效果很好