免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1941 | 回复: 0
打印 上一主题 下一主题

HTML Parser 学习一 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-20 11:03 |只看该作者 |倒序浏览

                HtmlParser 为其提供了强大而灵活易用的开源类库,大大节省了写一个网页解析器的开销。 HtmlParser 是
http://sourceforge.net 上活跃的一个开源项目,它提供了线性和嵌套两种方式来解析网页,主要用于 html
网页的转换(Transformation) 以及网页内容的抽取 (Extraction)。HtmlParser
有如下一些易于使用的特性:过滤器 (Filters),访问者模式 (Visitors),处理自定义标签以及易于使用的 JavaBeans。正如
HtmlParser 首页所说:它是一个快速,健壮以及严格测试过的组件;以它设计的简洁,程序运行的速度以及处理 Internet 上真实网页的能力吸引着越来越多的开发者。
file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/moz-screenshot-2.jpg
研究的重点还是extraction的使用,有空再研究transformation的使用。
1、htmlparser对html页面处理的数据结构


如图所示,HtmlParser采用了经典的Composite模式,通过RemarkNode、TextNode、TagNode、AbstractNode和Tag来描述HTML页面各元素。
  • org.htmlparser.Node:

    Node接口定义了进行树形结构节点操作的各种典型操作方法,包括:
    节点到html文本、text文本的方法:toPlainTextString、toHtml
   典型树形结构遍历的方法:getParent、getChildren、getFirstChild、getLastChild、getPreviousSibling、getNextSibling、getText
    获取节点对应的树形结构结构的顶级节点Page对象方法:getPage
    获取节点起始位置的方法:getStartPosition、getEndPosition
   Visitor方法遍历节点时候方法:accept (NodeVisitor visitor)
    Filter方法:collectInto (NodeList list, NodeFilter filter)
    Object方法:toString、clone
  • org.htmlparser.nodes.AbstractNode

    AbstractNode是形成HTML树形结构抽象基类,实现了Node接口。
    在htmlparser中,Node分成三类:
    RemarkNode:代表Html中的注释
    TagNode:标签节点。
    TextNode:文本节点
    这三类节点都继承AbstractNode。
  • org.htmlparser.nodes.TagNode:

    TagNode包含了对HTML处理的核心的各个类,是所有TAG的基类,其中有分为包含其他TAG的复合节点ComositeTag和不包含其他TAG的叶子节点Tag。
    复合节点CompositeTag:   
        AppletTag,BodyTag,Bullet,BulletList,DefinitionList,DefinitionListBullet,Div,FormTag,FrameSetTag,HeadingTag,
        HeadTag,Html,LabelTag,LinkTag,ObjectTag,ParagraphTag,ScriptTag,SelectTag,Span,StyleTag,TableColumn,
       TableHeader,TableRow,TableTag,TextareaTag,TitleTag
    叶子节点TAG:
        BaseHrefTag,DoctypeTag,FrameTag,ImageTag,InputTag,JspTag,MetaTag,ProcessingInstructionTag,
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84280/showart_2073870.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP