整理常用的解析代码:
1.获取指定URL地址下面的全部的<>标签名称
private void visitorFunction() {
try {
Parser parser = new Parser();
parser.setURL("");
parser.setEncoding(parser.getEncoding());
NodeVisitor visitor = new NodeVisitor(){
public void visitTag(Tag tag) {
System.out.print("tag name is:"+tag.getTagName()+"\n class is:"+tag.getClass());
}
};
parser.visitAllNodesWith(visitor);
}catch (Exception e) {
// TODO: handle exception
}
}
2.获取指定页面的全部的链接地址即URL地址值
private void visitorFunction() {
try {
Parser parser = new Parser();
parser.setURL("");
parser.setEncoding(parser.getEncoding());
NodeVisitor visitor = new NodeVisitor(){
public void visitTag(Tag tag) {
System.out.print("tag name is:"+tag.getTagName()+"\n class is:"+tag.getClass());
}
};
parser.visitAllNodesWith(visitor);
}catch (Exception e) {
// TODO: handle exception
}
}
这个可以用来当URL队列。网页爬虫将以这些为对象进行顺序抓取全部的相关页面信息。
3.private void linkBeanFunction() {
Parser parser = new Parser();
LinkBean linkBean = new LinkBean();
linkBean.setURL("");
URL[] urls = linkBean.getLinks();
for (int i = 0; i < urls.length; i++) {
URL url = urls[i];
System.out.print(url);
}
}
也可以将全部的URL地址抓取下来的。
3.抓取页面的全部img标签链接值与图片本身位置
private void testImageVisitor() {
try {
ImageTag imgLinkImageTag;
ObjectFindingVisitor visitor = new ObjectFindingVisitor(ImageTag.class);
Parser parser = new Parser();
parser.setURL("http://www.tianya.cn/focus/index.shtml");
parser.setEncoding(parser.getEncoding());
parser.visitAllNodesWith(visitor);
Node[] nodes = visitor.getTags();
for (int i = 0; i < nodes.length; i++) {
imgLinkImageTag = (ImageTag) nodes[i];//表示的是页面中的IMG标签的
System.out.print("image url is:"+imgLinkImageTag.getImageURL()+" ImageLocation:"+imgLinkImageTag.extractImageLocn());
}
}catch (Exception e) {
e.printStackTrace();
}
}
查看API发现:
- , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
- 有这么多的HTML标签是可以套的。即想要什么样的HTML页面标签都是可以取出来的。这样的话可以分门进行探测标签的!
阅读(1067) | 评论(0) | 转发(0) |