如题.
现已知道Html2Xml、jspider等可以实现此功能,并能满足要求。
但是不知道这些东西具体该怎么用。
如果能给出实例最好!
急!急!急!!!

解决方案 »

  1.   

    可以用htmlparser,它的使用案例比较多,网上可以很容易搜索到,一下是获取sohu天气预报的例子,希望能帮到lzpackage  org.exoplatform.portlets.chinaweather.component;/** 
     *  @author  Administrator
     *
     * To change the template for this generated type comment go to
     * Window>Preferences>Java>Code Generation>Code and Comments
      */ 
    public   class  Weather {
      private  String city;
      private  String state;
      private  String temperature;
      private  String time;
      private  String wind;
      private  String windpower;
      private   long  UpdateTime;  /** 
      *  @return 
       */ 
      public  String getTemperature() {
       return  temperature;
     }  /** 
      *  @return 
       */ 
      public  String getTime() {
       return  time;
     }  /** 
      *  @return 
       */ 
      public  String getWind() {
       return  wind;
     }  /** 
      *  @return 
       */ 
      public  String getWindpower() {
       return  windpower;
     }  /** 
      *  @param  string
       */ 
      public   void  setTemperature(String string) {
      temperature  =  string;
     }  /** 
      *  @param  string
       */ 
      public   void  setTime(String string) {
      time  =  string;
     }  /** 
      *  @param  string
       */ 
      public   void  setWind(String string) {
      wind  =  string;
     }  /** 
      *  @param  string
       */ 
      public   void  setWindpower(String string) {
      windpower  =  string;
     }  /** 
      *  @return 
       */ 
      public   long  getUpdateTime() {
       return  UpdateTime;
     }  /** 
      *  @param  l
       */ 
      public   void  setUpdateTime( long  l) {
      UpdateTime  =  l;
     }  /** 
      *  @return 
       */ 
      public  String getState() {
       return  state;
     }  /** 
      *  @param  string
       */ 
      public   void  setState(String string) {
      state  =  string;
     }  /** 
      *  @return 
       */ 
      public  String getCity() {
       return  city;
     }  /** 
      *  @param  string
       */ 
      public   void  setCity(String string) {
      city  =  string;
     }}
    具体的解析代码为:private  Weather parserWeather()  throws  Exception {
      Weather w  =   new  Weather();
       try  {    // Parser parser =
        //  new Parser("file: // localhost/I:/projects/query.html"); 
       Parser parser  = 
         new  Parser( " http://weather.news.sohu.com/query.php?city=镇江 " );
       
       parser.setEncoding( " GBK " );
       Node nodes[]  =  parser.extractAllNodesThatAre(TableTag. class );   TableTag table  =  (TableTag) nodes[ 3 ];
        // temperature 
       StringNode[] stringNodes  =  table.digupStringNode( " 镇江 " );
       StringNode name  =  stringNodes[ 0 ];
       w.setCity(name.toPlainTextString());
       CompositeTag td  =  (CompositeTag) name.getParent();
       CompositeTag tr  =  (CompositeTag) td.getParent();
        int  columnNo  =  tr.findPositionOf(td);
       TableColumn nextColumn  =  (TableColumn) tr.childAt( 5 );
       Node expectedName  =  nextColumn.childAt( 0 );
       Node expectedName2  =  nextColumn.childAt( 2 );
        // System.out.println(expectedName.getText());
        // System.out.println(expectedName2.getText()); 
       w.setState(expectedName.getText());
       w.setTemperature(expectedName2.getText());
        // time 
       stringNodes  =  table.digupStringNode( " 时间 " );
       name  =  stringNodes[ 0 ];
        // System.out.println(name.toPlainTextString());    String time  = 
        name
         .toPlainTextString()
         .substring( 4 , name.toPlainTextString().length())
         .trim();
        // System.out.println(time); 
       w.setTime(time);
        // wind 
       stringNodes  =  table.digupStringNode( " 风向 " );
       name  =  stringNodes[ 0 ];
        // System.out.println(name.toPlainTextString());    String wind  = 
        name
         .toPlainTextString()
         .substring( 4 , name.toPlainTextString().length())
         .trim();
        // System.out.println(wind); 
       w.setWind(wind);
        // wind power 
       stringNodes  =  table.digupStringNode( " 风力 " );
       name  =  stringNodes[ 0 ];
        // System.out.println(name.toPlainTextString());    String windpower  = 
        name
         .toPlainTextString()
         .substring( 4 , name.toPlainTextString().length())
         .trim();
        // System.out.println(windpower); 
       w.setWindpower(windpower);   w.setUpdateTime(System.currentTimeMillis());  }  catch  (ParserException e) {   e.printStackTrace();
      }
       return  w;
     }
    解析出来的代码必须做缓存处理,private   static   long  TIME_TO_LIVE  =   1000   *   60   *   60   *   12 ;  private  Weather loadWeather()  throws  Exception {
      Weather weather  =  weather  =  (Weather) cache_.get( " chinaweather " );
       long  currentTime  =  System.currentTimeMillis();
       if  (weather  !=   null 
        &&  currentTime  <  (weather.getUpdateTime()  +  TIME_TO_LIVE)) {
       cache_.remove( " chinaweather " );
       weather  =   null ;
      }   if  (weather  ==   null ) {
        synchronized  (cache_) {
        weather  =  parserWeather();
        cache_.put( " chinaweather " , weather);
       }
      }   return  weather;
     }
      

  2.   

    Thank you!
    不过很可惜,没通过编译.
    html2xml包我已经下载下来了.
      

  3.   

    Thank you!
    不过很可惜,没通过编译.
    htmlparser包我已经下载下来了