转自:http://www.cnblogs.com/loveyakamoz/archive/2011/07/27/2118904.html
HtmlParser关键包
org.htmlparser
定义了htmlparser的一些基础类,其中最为重要的是Parser。Parser是htmlParser的最核心的类。
org.htmlparser.beans
对Visitor和Filter的方法进行了封装,定义了针对一些常用HTML元素操作的JavaBean,简化对常用元素的提取操作。包括:FilterBean、HTMLLinkBean、HTMLTextBean、LinkBean、StringBean、BeanyBaby等。
org.htmlparser.nodes
定义了基础的node,包括:AbstractNode、RemarkNode、TagNode、TextNode等。 Node是形成树结构表示HTML的基础,所有的数据表示都是接口Node的实现。
org.htmlparser.tags
定义了HtmlParser进行解析的网页中的各种标签。
org.htmlparser.filters
定义了各种过滤器filter,主要通过extractAllNodesThatMatch (NodeFilter filter)来对html页面指定类型的元素进行过滤,包括:AndFilter、CssSelectorNodeFilter、HasAttributeFilter、HasChildFilter、HasParentFilter、HasSiblingFilter、IsEqualFilter、LinkRegexFilter、LinkStringFilter、NodeClassFilter、NotFilter、OrFilter、RegexFilter、StringFilter、TagNameFilter、XorFilter
org.htmlparser.visitors
定义了各种访问者visitor,主要通过visitAllNodesWith (NodeVisitor visitor)来对html页面元素进行遍历,包括:HtmlPage、LinkFindingVisitor、NodeVisitor、ObjectFindingVisitor、StringFindingVisitor、TagFindingVisitor、TextExtractingVisitor、UrlModifyingVisitor
org.htmlparser.parserapplications
定义了一些实用的工具,包括LinkExtractor、SiteCapturer、StringExtractor、WikiCapturer,这几个类也可以作为HtmlParser使用样例。
org.htmlparser.tests
各种功能的单元测试用例,可作为HtmlParser使用的样例。
HtmlParser内部关系结构图:后面我会对这个结构以及HtmlParser的解析流程进行详细的阐述。