WebParser.java
上传用户:cctqzzy
上传日期:2022-03-14
资源大小:12198k
文件大小:2k
源码类别:

搜索引擎

开发平台:

Java

  1. package chapter2;
  2. import java.io.*;
  3. import java.net.*;
  4. import java.io.File;
  5. import java.io.FileReader;
  6. import java.io.FileWriter;
  7. public class WebParser { 
  8. private static String src_File_Path = "D:\workshop\ch2\htmlsrc.html";
  9. private static String dst_File_Path = "D:\workshop\ch2\puresrc.txt";
  10.  public static void main(String[] args) throws IOException {
  11.  
  12.         try { 
  13.         
  14.          Parser();
  15.        } catch (IOException e) { 
  16.            System.err.println("下载失败,请检查输入地址是否正确。");  
  17.            System.exit(1);
  18.        } 
  19.   }
  20.  
  21.  public static void Parser()  throws IOException {
  22.      try { 
  23.       
  24.         boolean bContent = true;
  25.         StringBuffer sBuffer = new StringBuffer(8096*2); 
  26.         char[] cBuffer = new char[8096*2]; 
  27.         int nCount = 0;
  28.          
  29.       File srcfile = new File(src_File_Path);
  30. FileReader fpReader = new FileReader(srcfile);
  31. File dstfile = new File(dst_File_Path);
  32. FileWriter fpWriter = new FileWriter(dstfile);
  33.      nCount = fpReader.read(cBuffer);
  34. for(int i = 0; i < nCount;i++)
  35.         {
  36.             if( bContent == false )
  37.             {
  38.                 if(cBuffer[i] == '>')
  39.                  bContent = true;
  40.                 else
  41.                     continue;
  42.             } else {
  43.                 if(cBuffer[i] == '<')
  44.                 {
  45.                  bContent = false;
  46.                     continue;
  47.                 } else if(cBuffer[i] == 'n' || cBuffer[i] == ' ' || cBuffer[i] == ' ' ||  cBuffer[i] == ' ')
  48.                 {
  49.                  continue;
  50.                 }else if(  cBuffer[i]   == '&' && cBuffer[i+1] == 'n' 
  51.                      && cBuffer[i+2] == 'b' && cBuffer[i+3] == 's' 
  52.                      && cBuffer[i+4] == 'p' && cBuffer[i+5] == ';')
  53.                 {
  54.                  i =i+5;
  55.                  continue;
  56.                 }
  57.                 
  58.              sBuffer.append(cBuffer[i]);
  59.             }
  60.         }
  61. System.out.println(sBuffer.toString());
  62. fpWriter.write(sBuffer.toString());
  63. fpReader.close();
  64. fpWriter.close(); 
  65.      } catch (UnknownHostException e) {
  66.          System.err.println("无法访问指定主机."); 
  67.          System.exit(1);
  68.     } catch (IOException e) { 
  69.         throw e;
  70.     }  
  71.  }
  72. }