主要使用了HtmlParser类解决问题。
必须导入htmlparser.jar包,读者可从网上自行下载。
下面直接贴上源码:
public NodeList parser(String url) throws ParserException{
/**根据Url创建parser对象**/
Parser parser = new Parser(url);
/**设置编码,必须与Url编码一样 **/
parser.setEncoding("utf-8");
/** 构建一个Html页面对象 **/
HtmlPage htmlPage = new HtmlPage(parser);
parser.visitAllNodesWith(htmlPage);
/** 获取Body下面所有的节点,可以想象成类似树状结构 **/
NodeList list = htmlPage.getBody();
/** 建立一个Filter,用于过滤节点,此处获得形如“<img></img>”这样的节点 **/
NodeFilter filter = new TagNameFilter("IMG");
/** 得到过滤后的节点 **/
list = list.extractAllNodesThatMatch(filter, true);
for(int c =0; c < list.size(); c ++){
ImageTag imageTag=(ImageTag)list.elementAt(c);
/** 输出图片的链接Url **/
System.out.println(imageTag.getImageURL());
}
return list;
}
public static void main(String[] args) throws ParserException {
Demo demo = new Demo();
demo.parser("http://www.163.com");
}
输出结果就是一堆图片的链接了。