HTMLParser学习笔记1

HTMLParser的下载

1.HTMLParser包的下载地址:

http://sourceforge.net/projects/htmlparser/files/

2.把下载得到的文件中lib目录下的包都引入你的工程中,就可以使用HTMLParser,只引入htmlparser包的话,会无法使用某些HTMLParser里的方法。

3.关于HTMLParser的详细讲解,大家可以看看百度文库里的这篇文章:

http://wenku.baidu.com/view/d10ad25177232f60ddcca161.html

4.HTMLParser的帮助文档:

http://htmlparser.sourceforge.net/javadoc/index-all.html

 

HTMLParser的简单使用

HTMLParser主要是常用来解析html页面并获取自己需要的数据,经常是和网络爬虫(如:Hritriex)一同使用,不扯远的。在使用HTMLParser前,需要先实例化一个Parser对象:

 

// 实例化Parser对象

Parser parser = new Parser();

// 设置URL,该参数是String类型,这里需要捕获异常,用throws或者try catch 语句都行

parser.setURL(url);

// 设置编码,避免获取到的中午数据是乱码,

parser.setEncoding(parser.getEncoding());

 

执行完上面的代码后,就可以使用HTMLParser来解析html页面了,当然通常情况下,我们只是想获取某些特定的内容,而不是整个页面的数据,比方说某张图片,某些正文。这样,我们就需要对html页面的标签进行一些筛选了。

Htmlparser筛选标签的方法有3种,filtervisitor等(第3种,我给忘记了,没用过),现在分别介绍filter visitor

Filter

HTMLParserorg.htmlparser.filters包定义了16个不同的Filter,这里就只对我用过的filter进行介绍,其它的详细信息大家可以参照HTMLParser的帮助文档或者其它资料。

1.       TagNameFilter 根据html标签的名称进行过滤

// 得到名称为div的标签

NodeFilter filter = new TagNameFilter(“div”);

NodeList nodes = parser.extractAllNodeThatMatch(filter);

//得到nodes,对parser进行重置,以便于下次的filter操作

parser.reset();

2.       StringFilter 根据字符串进行过滤

//找出有包含“更新时间”字符串的标签

//过滤出显示字符串中包含指定内容(如:更新时间)的标签,指定内容不包含在注释、链接//中的。

filter = new StringFilter("更新时间");

nodes = parser.extractAllNodesThatMatch(filter);

3.       HasAttributeFilter 根据标签的属性进行过滤

//包含class属性、且属性值为:abcon_left01_right01的标签

filter = new HasAttributeFilter("class", "abcon_left01_right01");

nodes = parser.extractAllNodesThatMatch(filter);

visitor

visitor filter是异曲同工的,visitor也是取出符合条件的标签。

// 找出所有的图片标签,

ObjectFindingVisitor visitor = new ObjectFindingVisitor(ImageTag.class);

parser.visitAllNodesWith(visitor);

Node[] nodes = visitor.getTags();

按DOM模型解析html文件的工具包 已下是源码列表: META-INF/MANIFEST.MF META-INF/maven/org.htmlparser/htmlparser/pom.properties META-INF/maven/org.htmlparser/htmlparser/pom.xml org.htmlparser.Parser.class org.htmlparser.PrototypicalNodeFactory.class org.htmlparser.beans.BeanyBaby.class org.htmlparser.beans.FilterBean.class org.htmlparser.beans.HTMLLinkBean.class org.htmlparser.beans.HTMLTextBean.class org.htmlparser.beans.LinkBean.class org.htmlparser.beans.StringBean.class org.htmlparser.filters.AndFilter.class org.htmlparser.filters.CssSelectorNodeFilter.class org.htmlparser.filters.HasAttributeFilter.class org.htmlparser.filters.HasChildFilter.class org.htmlparser.filters.HasParentFilter.class org.htmlparser.filters.HasSiblingFilter.class org.htmlparser.filters.IsEqualFilter.class org.htmlparser.filters.LinkRegexFilter.class org.htmlparser.filters.LinkStringFilter.class org.htmlparser.filters.NodeClassFilter.class org.htmlparser.filters.NotFilter.class org.htmlparser.filters.OrFilter.class org.htmlparser.filters.RegexFilter.class org.htmlparser.filters.StringFilter.class org.htmlparser.filters.TagNameFilter.class org.htmlparser.http.HttpHeader.class org.htmlparser.sax.Attributes.class org.htmlparser.sax.Feedback.class org.htmlparser.sax.Locator.class org.htmlparser.sax.XMLReader.class org.htmlparser.scanners.CompositeTagScanner.class org.htmlparser.scanners.JspScanner.class org.htmlparser.scanners.ScriptDecoder.class org.htmlparser.scanners.ScriptScanner.class org.htmlparser.scanners.StyleScanner.class org.htmlparser.tags.AppletTag.class org.htmlparser.tags.BaseHrefTag.class org.htmlparser.tags.BlockquoteTag.class org.htmlparser.tags.BodyTag.class org.htmlparser.tags.Bullet.class org.htmlparser.tags.BulletList.class org.htmlparser.tags.CompositeTag.class org.htmlparser.tags.DefinitionList.class org.htmlparser.tags.DefinitionListBullet.class org.htmlparser.tags.Div.class org.htmlparser.tags.DoctypeTag.class org.htmlparser.tags.FormTag.class org.htmlparser.tags.FrameSetTag.class org.htmlparser.tags.FrameTag.class org.htmlparser.tags.HeadTag.class org.htmlparser.tags.HeadingTag.class org.htmlparser.tags.Html.class org.htmlparser.tags.ImageTag.class org.htmlparser.tags.InputTag.class org.htmlparser.tags.JspTag.class org.htmlparser.tags.LabelTag.class org.htmlparser.tags.LinkTag.class org.htmlparser.tags.MetaTag.class org.htmlparser.tags.ObjectTag.class org.htmlparser.tags.OptionTag.class org.htmlparser.tags.ParagraphTag.class org.htmlparser.tags.ProcessingInstructionTag.class org.htmlparser.tags.ScriptTag.class org.htmlparser.tags.SelectTag.class org.htmlparser.tags.Span.class org.htmlparser.tags.StyleTag.class org.htmlparser.tags.TableColumn.class org.htmlparser.tags.TableHeader.class org.htmlparser.tags.TableRow.class org.htmlparser.tags.TableTag.class org.htmlparser.tags.TextareaTag.class org.htmlparser.tags.TitleTag.class org.htmlparser.util.CharacterReference.class org.htmlparser.util.CharacterReferenceEx.class org.htmlparser.util.DefaultParserFeedback.class org.htmlparser.util.FeedbackManager.class org.htmlparser.util.IteratorImpl.class org.htmlparser.util.NodeTreeWalker.class org.htmlparser.util.ParserFeedback.class org.htmlparser.util.ParserUtils.class org.htmlparser.util.Translate.class org.htmlparser.visitors.HtmlPage.class org.htmlparser.visitors.LinkFindingVisitor.class org.htmlparser.visitors.ObjectFindingVisitor.class org.htmlparser.visitors.StringFindingVisitor.class org.htmlparser.visitors.TagFindingVisitor.class org.htmlparser.visitors.TextExtractingVisitor.class org.htmlparser.visitors.UrlModifyingVisitor.class org/htmlparser/beans/images/Chain16.gif org/htmlparser/beans/images/Chain32.gif org/htmlparser/beans/images/Knot16.gif org/htmlparser/beans/images/Knot32.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值