HtmlParser有三种解析方式,visitor模式,filter模式,bean模式
filter模式
visitor模式:
bean模式不想用。。。。。
filter模式
public List<URL> parserByFilter(URL url) throws ParserException, MalformedURLException{
List<URL> result = new ArrayList<URL>();
Parser parser = new Parser();
parser.setURL(url.toString());
//设置编码
parser.setEncoding(parser.getEncoding());
NodeFilter filter = new NodeClassFilter(LinkTag.class);//过滤器
NodeList list = parser.extractAllNodesThatMatch(filter);//过滤所有链接
//遍历结果
for(int i=0;i<list.size();i++){
LinkTag tag = (LinkTag) list.elementAt(i);
if(tag.getLink().startsWith("http://")){
URL link = new URL(tag.getLink());
result.add(link);
}
System.out.println(tag.getLink());
}
return result;
}
visitor模式:
public void parserByVisitor() throws Exception{
Parser parser = new Parser();
parser.setURL("http://www.baidu.com");
System.out.println(parser.getEncoding());
NodeVisitor visitor = new NodeVisitor() {
@Override
public void visitTag(Tag tag) {
System.out.println(tag.getTagName());
if(tag.getTagName().equals("META")){
System.out.println(tag.getAttributeEx("content").getValue());
}
}
};
parser.visitAllNodesWith(visitor);
bean模式不想用。。。。。