Topic: 请教(关于htmlpaser开源包的)

  Print this page

1.请教(关于htmlpaser开源包的) Copy to clipboard
Posted by: fishman
Posted on: 2005-04-20 03:16

我做了一个程序,就是从一个html解析出:
1、获取<a>标签
2、取得值为key(汽车)的<a>标签
3、取<a>标签中的href属性的值

我写了一个程序,结果能解析163网站的东西,但是sina和sohu的都解析不了,程序debug时有错,说找不到org.htmlparser.util里面的IterotarImpl.class,我甚是纳闷,那怎么能解析163的呢?请对htmlparser有研究的高人指点一下。
程序大致如下:

import org.htmlparser.*;
import org.htmlparser.util.NodeIterator;
import org.htmlparser.lexer.nodes.TagNode;

/**
* @author zhangyu
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class ParserHref {
  public static void main(String[] args)throws Exception
  {
     //取得所有的标签对应的Node
     Parser parser = new Parser("http://www.163.com");
     NodeIterator iterator = parser.elements();
     Node node = iterator.nextNode();
     //调用一个递归的遍历方法
     getLinks(node);

  }

   //递归遍历所有的node节点内满足要求的节点
   public static void getLinks(Node pNode)
      {
     
        for (int i = 0; i<pNode.getChildren().size(); i++)
     
      {
      Node node = pNode.getChildren().elementAtLight Bulb;
      if (node instanceof TagNode)
      {
      TagNode tag = (TagNode) node;
      //判断内容为“汽车”的标签为A的节点
      if(tag.getTagName().equals("A") &&tag.toPlainTextString().equals("汽车"))
      {
      //取得,并打印满足要求节点的“href”属性
      System.out.println("汽车:" + tag.getAttribute("href"));
      }
      if (tag.getChildren() != null && tag.getChildren().size() > 0)
      getLinks(tag);
      }
      }  
      }

}


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923