htmlParser 工具类使用笔记

Parser parser = new Parser("http://www.downv.com/Windows/download-IgCodec-10400398.htm");
            //链接过滤器
            Parser linkParser = new Parser();
            //属性过滤器
            HasAttributeFilter tagFilter = new HasAttributeFilter("class","info");
            HasAttributeFilter downloadLinkFilter = new HasAttributeFilter("class","download1");
            HasAttributeFilter descFilter = new HasAttributeFilter("class","block2");
           
            //链接过滤器
            NodeFilter linkFilter = new NodeClassFilter(LinkTag.class);
            //通过属性过滤器获得内容list
            NodeList downloadTag = parser.extractAllNodesThatMatch(downloadLinkFilter);
           
            if(!CommonUtil.isEmpty(downloadTag)){
                //获得通过过滤后的tag
                Node tag = downloadTag.elementAt(0);
                //链接过滤器加入代码
                linkParser.setInputHTML(tag.toHtml());
                //过滤获得链接内容list
                NodeList list = linkParser.extractAllNodesThatMatch(linkFilter);
                if(list.size() > 0){
                    //输出过滤链接
                    System.out.println(((LinkTag)list.elementAt(0)).extractLink());
                }
            }
           
            //解析parser设置url
            parser.setURL("http://www.downv.com/Windows/download-IgCodec-10400398.htm");
            //添加自定义标签工厂
            PrototypicalNodeFactory factory = new PrototypicalNodeFactory();
            //工厂添加自定义标签类
            factory.registerTag(new HtmlParsePTag());
            //解析添加工厂
            parser.setNodeFactory(factory);
            //获得过滤器获得内容
            NodeList descTag = parser.extractAllNodesThatMatch(descFilter);
            //便利内容
            for(int i=0;i<descTag.size()&& descTag.size() >= 2;i++){
                Node tag = descTag.elementAt(1);
                //得到自定义标签内文本
                System.out.println(tag.toPlainTextString());
                break;
            }

 

//自定义抓取标签

public class HtmlParsePTag extends CompositeTag {

    private static final String mIds[] = { "p" };
    private static final String mEndTagEnders[] = { "p" };

    public HtmlParsePTag() {

    }

    public String[] getIds() {
        return mIds;
    }

    public String[] getEndTagEnders() {
        return mEndTagEnders;
    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值