最近在做html页面转化成jsf页面的工作,尝试过使用正则表达式、dom4j等方法,都没有取得很好的结果。(html-->jsf会另写一篇文章进行讨论)现在在使用htmlparser对html进行解析,对于html页面的解析htmlparser是一个功能比较强大的工具(相关下载:http://sourceforge.net/projects/htmlparser/)。以下是经常使用的对页面解析的两种方法,简单的总结了这两种方法的实现步骤,希望在这里抛砖引玉,有这方面编程经验的们,能参与讨论,怎样用它来进行html-->jsf的转换。
一、利用NodeFilter对网页进行分析
1、生成一个Parser
a.通过url提取网络上的网页
Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");
b.提取本地网页文件
通过读文件把网页文件转化成字符串;
Parser parser=Parser.createParser(html,charset);
2、利用NodeFilter做一个filter
a.利用Tag Name
NodeFilter filter=new TagNameFilter("IMG");
b.利用Tag Class
NodeFilter filter = new NodeClassFilter(ImageTag.class);
3、通过匹配filter,得到所有符合条件的Tag
NodeList list=parser.extractAllNodesThat(filter);
for(int i=0;i String content=list.elementAt(i).toHtml();//得到符合条件的Tag内容
如果针对具体情况进行更加详细的处理,则:
ImageTag imageTag=(ImageTag)list.elementAt(i);
…………
}
然后根据需要做相应的处理。
二、利用Visitor对网页进行分析
1、生成一个Parser
a.通过url提取网络上的网页
Parser parser = new Parser();
parser.setURL("http://www.yahoo.com.cn");
b.提取本地网页文件
通过读文件把网页文件转化成字符串;
Parser parser=Parser.createParser(html,charset);
2、用visitor访问页面
ex:ObjectFindingVisitor visitor=new ObjectFindingVisitor();
parser.visitAllNodesWith(visitor);
3、通过特定的visitor得到符合条件的Tag
Node[] nodes=visitor.getTags();
for(int i=0;i ImageTag imageTag=(ImageTag)nodes[i];
…………
//根据需要做特定处理
}
相关文章:http://www.blogjava.net/lostfire/archive/2006/07/02/56212.html
分享到:
相关推荐
在`parse5-master`这个压缩包中,很可能包含了parse5库的源码和相关资源,你可以通过阅读源码、查看示例和文档来更深入地理解这个库的工作原理,以及如何有效地使用`parse5-htmlparser2-tree-adapter`。同时,熟悉这...
HTMLParser-2.0-SNAPSHOT 是一个针对Web信息抽取的软件包,它包含了多个核心组件,用于解析和处理HTML文档。在这个版本中,我们主要关注以下五个关键库: 1. **filterbuilder.jar**:这是一个过滤器构建工具,用于...
标题中的“lucene_JE分词_htmlParser--jar包”表明这是一个包含与Lucene、JE分词和HTMLParser相关的Java库的集合。这些组件在IT领域中有着特定的应用,特别是对于文本处理和搜索引擎构建。 首先,让我们详细了解...
"htmlparser-1.6p.jar"是该库的特定版本,用于在Java环境中集成和使用。 HTMLParser的核心功能包括: 1. **标签和属性处理**:它可以识别并解析HTML文档中的各种标签,如`<html>`, `<head>`, `<body>`等,同时处理...
1. **数据解析**:在爬虫项目中,可以使用`htmlparser`先解析HTML页面,然后用`htmlparser-to-html`将解析后的数据还原,以便进一步处理或存储。 2. **模板渲染**:在前端模板引擎中,可以先将HTML模板转换成JSON,...
最后,“htmlparser4”阶段可能涵盖了更高级的话题,比如事件处理、XPath表达式用于在DOM树中查找特定元素,或者CSS选择器的使用。也可能探讨了性能优化,如增量解析、流式解析,以及错误处理和容错机制,以确保在...
而`HTMLParser-2.0-SNAPSHOT`可能包含了源代码,这对于开发者来说是宝贵的,因为他们可以直接查看和修改源代码,或者根据需求进行定制。 API文档是使用HTMLParser的关键,它详尽地解释了库中每个类、方法和接口的...
在使用HTMLParser-C++时,开发人员需要包含相关的头文件,如`htmlparser.h`,然后创建解析器实例,例如`HTMLParser parser`。解析器通常会有一个解析HTML字符串或文件的方法,如`parseString`或`parseFile`。解析...
HTMLParser-2.0-API.CHM
//获取子链接,url为网页url,filter是链接过滤器,返回该页面子链接的HashSet public static Set<String> extracLinks(String url, LinkFilter filter) { Set<String> links = new HashSet(); try { ...
6. **API友好**:HTMLParser的API设计简洁明了,易于学习和使用。开发者可以通过几行代码就能实现复杂的HTML解析任务。 7. **开源与社区支持**:HTMLParser是开源项目,其源代码可以在GitHub等平台上获取。这意味着...
htmlparser-1.2.1jar包下载htmlparser-1.2.1jar包下载
HTMLParser支持过滤器(Filter)和访问者模式(Visitor),允许用户根据需求选择感兴趣的节点进行处理。例如,如果你想提取所有的链接(a标签),可以创建一个`TagFilter`: ```java import org.htmlparser.filters...
总之,HtmlParser通过Node、AbstractNode和Tag的数据结构,为开发者提供了一种强大的工具来解析和操作HTML文档,适用于信息提取、网页抓取等多种应用场景。在使用过程中,理解这些核心概念并熟练掌握Parser的创建和...
HtmlParser-2.0 API ,chm格式,方便使用
htmlparser-1.0.5.jar htmlparser-1.0.5.jar