HtmlParser初探--使用Nodefilter和Visitor进行网页分析

转载 2010年06月01日 22:04:00

HtmlParser初探--使用Nodefilter和Visitor进行网页分析

 

url:http://blog.csdn.net/thamsyangsw/archive/2009/08/15/4448873.aspx

现在在使用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];
 …………
//根据需要做特定处理
}

 

通用Delphi数据库输入控件DBPanel的实现

李晓平/河北固安华北石油职工大学 ---- 无论是开发什么样的程序,数据输入是不可缺少的。快速地生成一个美观的输入界面无疑会大大提高程序开发的效率。系统原有的控件,往往不尽人意。在delphi中,如果...
  • nm
  • nm
  • 2000-08-29 08:04:00
  • 2281

HTMLParser的filter访问方式详解

参考地址:http://hi.baidu.com/neverend06/blog/item/86ab838aa60dfc6c9f2fb4fe.htmlHTMLParser遍历了网页的内容以后,以树(森...
  • Love_JavaProgram
  • Love_JavaProgram
  • 2011-04-01 11:33:00
  • 3552

HtmlParser应用,使用Filter从爬取到的网页中获取需要的内容

htmlparser是一个纯的java写的html解析的库,它不依赖于其它的java库文件,主要用于改造或提取html。它能超高速解析html,而且不会出错。现在htmlparser最新版本为2.0。...
  • dyllove98
  • dyllove98
  • 2013-07-15 21:18:49
  • 7158

HtmlParser初探--使用Nodefilter和Visitor进行网页分析

HtmlParser初探--使用Nodefilter和Visitor进行网页分析
  • jackpk
  • jackpk
  • 2010-06-01 22:04:00
  • 6088

NodeFilter 部分设置方法

 NodeFilter titleFilter = new TagNameFilter("h1");            NodeFilter contentFilter = new AndFilt...
  • DITE_feng
  • DITE_feng
  • 2010-03-23 17:53:00
  • 831

JAVA HtmlParser Filter解析网页和表格(半个教程)

package sometry; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.Fil...
  • dongweionly
  • dongweionly
  • 2014-06-11 19:53:00
  • 2326

HtmlParser filter

import org.htmlparser.NodeFilter; import org.htmlparser.Parser; import org.htmlparser.filters.NodeCl...
  • longyuan20102011
  • longyuan20102011
  • 2013-01-13 12:39:55
  • 217

如何采用htmlParser来获取网络资源

 import org.htmlparser.NodeFilter;import org.htmlparser.Parser;import org.htmlparser.filters.TagName...
  • crazy_rain
  • crazy_rain
  • 2007-03-13 13:03:00
  • 1289

HtmlParser初探--使用Nodefilter和Visitor进行网页分析

最近在做html页面转化成jsf页面的工作,尝试过使用正则表达式、dom4j等方法,都没有取得很好的结果。(html-->jsf会另写一篇文章进行讨论)现在在使用htmlparser对html进行解析...
  • digyso888
  • digyso888
  • 2008-10-28 23:05:00
  • 595

HTMLParser使用visitor访问html dom树节点的原理

上一篇讲解了filter访问html树的原理,今天在讲解一下htmlparser中visitor访问html的dom树的原理。网上关于htmlparser工作原理的资料比较少,要想学习htmlpars...
  • WitsMakeMen
  • WitsMakeMen
  • 2013-04-10 10:36:51
  • 2452
收藏助手
不良信息举报
您举报文章:HtmlParser初探--使用Nodefilter和Visitor进行网页分析
举报原因:
原因补充:

(最多只允许输入30个字)