org.htmlparser小结

org.htmlparser 主要用来解析HTML网页。


一、基本上HTML中的每个标签对应于一个类,例如:

p标签对应于ParagraphTag类

ul标签对应于BulletList类

li标签对应于Bullet类

a标签对应于LinkTag类

文本对应于TextNode类

span标签对应于Span类

div标签对应于Div类

等等。


二、包含多种类型的HTML过滤器,例如:

1、属性过滤器,例如查询id=‘123’的标签

HasAttributeFilter answerFilter = new HasAttributeFilter("id","123");

2、样式过滤器,例如查询class='entry-text'的div标签

CssSelectorNodeFilter answerFilter = new CssSelectorNodeFilter("div[class='entry-text']");

3、标签名过滤器,例如查询所有的h2标签

TagNameFilter h2TagName_list = new TagNameFilter("h2");

4、父节点过滤器,例如查询父节点符合h2TagName_list过滤器的所有标签,第二个参数表示是否递归,true表示递归查找,即父、父父、父父父、依次向上查找。

HasParentFilter hasParentOfLi_list = new HasParentFilter(h2TagName_list,true);

5、并 过滤器,即查询同时满足多个过滤器的标签

AndFilter listFilter = new AndFilter(new NodeFilter[]{过滤器1,过滤器2,过滤器3,.....});

6、或者 过滤器,即查询满足其中任何一个过滤器的标签

OrFilter answerFilter = new OrFilter(过滤器1, 过滤器2);

7、标签类过滤器,即查询这一类的标签

NodeClassFilter textFilter_detail = new NodeClassFilter(TextNode.class);

8、文本过滤器,即查询包含这一文本内容的所有文本标签

StringFilter stringOf10WhyFilter_detail = new StringFilter("hello");

9、不 过滤器,即查询不符合该过滤器的所有标签

NotFilter notStringOf10WhyFilter_detail = new NotFilter(过滤器1);

10、 LinkStringFilter,这个Filter用于判断链接中是否包含某个特定的字符串,可以用来过滤出指向某个特定网站的链接

NodeFilter filter = new LinkStringFilter("www.baizeju.com");

等等


三、对获取到的网页内容进行解析

NodeList questionNodeList = new Parser(content).parse(questionFilter);

其中content表示网页内容,字符串类型;

questionFilter表示过滤器,即在网页字符串中查找符合该过滤器的所有标签。

对于有些网页的解析可能会报如下错误:

org.htmlparser.util.ParserException: Error in opening a connection to java.io.IOException: Invalid argument.......

解决方法如下:

/**
     * 解析字符串
     * @param inputHTML String
     * @return Parser
     */
    public static Parser createParser(String inputHTML) {
        Lexer mLexer = new Lexer(new Page(inputHTML));
        return new Parser(mLexer,new DefaultParserFeedback(DefaultParserFeedback.QUIET));
    }

在createParser里面去做new Parser(),问题解决。

而上面的new Parser(content).parse(questionFilter);语句改成myParser = createParser(content).parse(questionFilter);就行了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
按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、付费专栏及课程。

余额充值