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();
}
便可以解析出网页中的纯文本信息,而且效果很好
ps:太不会搜索信息了,API中就有这样的方法,都没找到。
分享到:
相关推荐
### HtmlParser提取网页信息的设计与实现 #### 一、引言 随着互联网的快速发展和信息量的爆炸式增长,从海量网页数据中提取有价值的信息变得日益重要。这不仅有助于提高信息检索的效率,还能为自动化的数据分析...
>`:这部分则用于匹配XML声明(如`<?xml ... ?>`)和其他可能存在的XML实体,这些通常不包含在页面的可见文本中。 2. **正则表达式编译与匹配**: - `Pattern.compile(regex, Pattern.CASE_INSENSITIVE)`:编译...
【Java使用HTMLParser提取网页纯文本】\n\n在Java编程中,提取网页纯文本是一项常见的任务,尤其在数据抓取、信息分析等领域。HTMLParser是一个强大的Java库,专门用于解析HTML文档,提取其中的文本内容。下面我们将...
总之,C#结合正则表达式和HTMLParser为我们提供了一种强大的手段,可以从网页中提取所需信息。尽管这个实例中代码的可读性可能不高,但通过学习正则表达式和HTML解析库的基本用法,我们可以自己构建类似的解决方案,...
文章强调,为了深入分析用户的网上行为和进行网页的分类、聚类、关联分析等处理工作,必须从海量的网页信息中提取有用的信息。由于原始HTML页面数据格式的局限性,直接处理并不方便,因此需要通过编写程序来实现数据...
以下是对HTMLParser及其在网页信息抽取中应用的详细说明: 1. **HTMLParser基本概念**: - HTMLParser是一个开源的Java库,它提供了API来解析HTML文档,支持处理HTML标签、属性、文本等元素。 - 库中的主要类包括...
总结来说,"htmlparser抓取网页内容"项目展示了如何利用Python的HTMLParser库从特定网站抓取专利状态信息,涵盖了网络请求、HTML解析、数据提取等多个IT技术点。在实践中,开发者需要具备HTML和HTTP的基础知识,以及...
总的来说,HTMLParser是Java开发中处理HTML文档的强大工具,特别适用于网页内容抓取和信息提取。通过熟练掌握HTMLParser的用法,开发者可以高效地从海量的网页数据中获取有价值的信息,为数据分析、搜索引擎优化、...
它可以识别HTML标签、属性、文本等元素,使得开发者能够方便地提取网页中的结构化信息。 2. **网页爬虫的基本原理**:网页爬虫通过发送HTTP请求到目标网站,获取HTML响应,然后解析这些HTML内容来提取所需信息。在...
HTMLParser是Python中用于解析HTML文档的一个库,它允许开发者高效地从网页中提取所需的数据。在Web开发和数据挖掘领域,爬虫技术是获取大量网络数据的重要手段,而HTMLParser则是实现这一目标的关键工具之一。本文...
在项目中,文件列表中提到的"Extract"可能是指提取网页内容的具体实现文件,其中可能包含了如何使用HTMLParser或者自定义的解析逻辑来抓取和处理网页源码的代码片段。这可能涉及到URL的请求,HTTP头的设置,错误处理...
### HTMLParser抽取Web网页正文信息的关键知识点 ...通过上述步骤,HTMLParser不仅能够高效地从网页中提取正文信息,还能通过一系列智能算法确保提取的内容与主题高度相关,极大地提高了信息处理的效率和质量。
在网页分析中,HTMLParser扮演着核心角色,它能够帮助开发者有效地处理HTML源代码,提取所需的信息,甚至进行DOM(Document Object Model)操作。以下是对HTMLParser及其相关知识点的详细说明: 1. HTML解析:...
HTMLParser是一款用于Java开发的网页解析库,它允许开发者高效地提取和处理HTML文档中的数据。在Web开发中,尤其是在爬虫程序或者自动化测试中,HTMLParser是一个非常实用的工具。下面将详细介绍HTMLParser库的核心...
HTMLParser 是一个强大的工具,用于解析和...通过上述方法,HTMLParser可以帮助我们有效地从网页中抽取出主要内容,提高信息检索的精确性和效率。这种方法在网页爬虫、内容分析和信息提取等领域具有广泛的应用价值。
使用HTMLParser,我们可以解析网页内容,提取所需信息,如文章标题、链接、图片等。以下是一些核心概念和步骤: 1. **创建自定义解析器**: 首先,我们需要继承Python的`HTMLParser`类,并重写其方法,如`handle_...
HtmlParser是一个用于网页抓取和解析的库,它能够帮助开发者高效地提取HTML文档中的信息并将其转换为结构化的XML格式。在Web开发中,这样的工具对于数据挖掘、搜索引擎优化(SEO)、网络爬虫和自动化信息处理至关...