Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29307346
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Java

2009-10-20 11:50:02

整理常用的解析代码:
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页面标签都是可以取出来的。这样的话可以分门进行探测标签的!



阅读(1065) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~