最近在做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-htmlparser2-tree-adapterparse5-htmlparser2-tree-adapter,parse5的htmlparser2树适配器。
HTML分析器——htmlparser1-4_20
Htmlparser是网页解析的优秀工具,我上传的里面有HTMLParser的API,已经相关的jar包。
htmlparser1.6-强大的html处理工具 可以对任意的html文档进行处理。
HTMLParser-2.0-API.CHM HTMLParser-2.0-API.CHM
//获取子链接,url为网页url,filter是链接过滤器,返回该页面子链接的HashSet public static Set<String> extracLinks(String url, LinkFilter filter) { Set<String> links = new HashSet(); try { ...
htmlparser-1.2.1jar包下载htmlparser-1.2.1jar包下载
内含lucene、je、htmlparser的jar包
htmlparser能超高速解析html,而且不会出错
前端开源库-htmlparser-to-htmlhtmlparser转换为html,将htmlparser/htmlparser2包生成的JSON转换回html。
HtmlParser学习笔记-- htmlparser简介 HtmlParser主要靠Node、AbstractNode和Tag来表达Html,因为Remark和Text相对简单,此处就将其忽略了。
HtmlParser-2.0 API ,chm格式,方便使用
htmlparser-1.0.5.jar htmlparser-1.0.5.jar
包含对HtmlParser使用的很多方面,解释的很详细
htmlparser-1.0.5
htmlparser1_6.jar