html怎么找下面的标签,用htmlParser怎么获取下面dd标签里面的内容

满意答案

htmlparser获取循环节点内容和单个标签内容的方法

htmlparser接口可用于提取分析html页面的内容。

本文只简单说明下如何利用htmlparser获取某个节点标签的内容,和获取循环节点的列表内容的个人总结。其它操作方法,因网上已经有很多相关的帮助文档,在此不再重复说明。

大致思路:

1:定义org.htmlparser.filters的类型,确定需要获取的标签或内容范围。常用的HMLT filter类型有:AndFilter、HasAttributeFilter、HasChildFilter、HasParentFilter、LinkStringFilter、NotFilter、OrFilter、TagNameFilter等类型。

为了更好定位所需要查找的页面内容,可以用多个Filter进行组合定位,如:AndFilter andFilter = new AndFilter(tagFilter,hasChildFilter);

2:通过NodeList list = parser.extractAllNodesThatMatch(andFilter);获取满足条件的节点列表。

3:对列表list进行循环遍历,在各个遍历里面,可以获取分析多个不同节点的内容,如获取某循环节点的内容和链接:

for(int i=0;i html = list.elementAt(i).toHtml();

// 获取内容

TagNameFilter pFilter = new TagNameFilter(\"p\");

HasAttributeFilter pAttributeFilter = new HasAttributeFilter(\"class\",\"sms\");

AndFilter pAndFilter = new AndFilter(pFilter,pAttributeFilter);

pParser = Parser.createParser(html, charset);

pList = pParser.extractAllNodesThatMatch(pAndFilter);

System.out.println(\"content:\"+pList.elements().nextNode().toPlainTextString());

// 获取连接

TagNameFilter aFilter = new TagNameFilter(\"a\");

HasChildFilter aChildFilter = new HasChildFilter(new TagNameFilter(\"strong\"));

AndFilter aAndFilter = new AndFilter(aFilter,aChildFilter);

pParser.reset();

pList = pParser.extractAllNodesThatMatch(aAndFilter);

// System.out.println(\"url:\"+pList.elements().nextNode().toHtml());

LinkTag linkTag = (LinkTag)pList.elements().nextNode();

System.out.println(\"url's link:\"+linkTag.getLink());

System.out.println(\"url's content:\"+linkTag.getLinkText());

}

至此,循环列表的内容,已经能全部获取到。

4:针对各种HMLT标签,htmlparser提供了各类标签的接口,为各类标签提供了各自个性化的方法,以便开发者更好更方便的调用。

举例如下:

如果想对某链接标签\" class=\"xxx\">进行内容的提取,可以通过正则表达式或字符串处理来获取到自己想要的内容。但更方便的,可以通过各种相应的xxxTag接口进行处理。如:LinkTag linkTag = (LinkTag)pList.elements().nextNode();

System.out.println(\"url's link:\"+linkTag.getLink());

System.out.println(\"url's content:\"+linkTag.getLinkText();

00分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值