package ch2;
import java.io.IOException;
import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.PrototypicalNodeFactory;
import org.htmlparser.tags.CompositeTag;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeList;
import ch1.Test1;
public class HyperLinkTrace {
public static void main(String[] args) throws Exception {
//加载要解析的网页
String sc=Test1.openFile("E:\\test.html");
Parser parser=new Parser(sc);
//注册新的节点解析器
PrototypicalNodeFactory factory=new PrototypicalNodeFactory();
//解析“链接”节点
factory.registerTag(new LinkTag());
//设置解析器
parser.setNodeFactory(factory);
//创建一个过滤器,过来链接节点
NodeFilter lnkFilter=new NodeFilter() {
@Override
public boolean accept(Node arg0) {
if(arg0 instanceof LinkTag){
return true;
}
return false;
}
};
//解析所有的链接节点
NodeList nlist=parser.extractAllNodesThatMatch(lnkFilter);
for (int i = 0; i < nlist.size(); i++) {
CompositeTag node=(CompositeTag)nlist.elementAt(i);
LinkTag link=(LinkTag)node;
//获取链接的地址
System.out.println(link.getLink());
}
}
}
使用HtmlParser 解析链接节点
最新推荐文章于 2024-08-23 09:38:52 发布