WebCrawler.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 WebCrawler { 
  8. private static String Text_File_Path = "D:\workshop\ch2\htmlsrc.html";
  9.  public static void main(String[] args) throws IOException {
  10.         try { 
  11.         
  12. File file = new File(Text_File_Path);
  13. FileWriter fpWriter = new FileWriter(file);
  14.         
  15.            // 生成下载对象
  16.            Socket webclient = new Socket("www.bnu.edu.cn", 80); 
  17.            PrintWriter result = new PrintWriter(webclient.getOutputStream(), true); 
  18.            BufferedReader receiver = new BufferedReader(new InputStreamReader(webclient.getInputStream()));
  19.            //发送HTTP request请求
  20.            result.println("GET / HTTP/1.1"); 
  21.            result.println("Host: bnu.edu.cn"); 
  22.            result.println("Connection: Close"); 
  23.            result.println();
  24.            
  25.            //接收HTTP Response 返回的结果信息        
  26.            boolean bRet = true;
  27.            StringBuffer sBuffer = new StringBuffer(8096); 
  28.            while (bRet) { 
  29.               if (receiver.ready()) {
  30.                 int idx = 0;
  31.                 while (idx != -1) {
  32.                  idx = receiver.read();
  33.                  if(idx == '<')
  34.                  break;
  35.                 }
  36.                 while (idx != -1) {
  37.                  sBuffer.append((char) idx);
  38.                  idx = receiver.read();
  39.                 }
  40.                 bRet = false; 
  41.             } 
  42.           }
  43.            
  44.           // 显示获得的网页正文,打印到控制台  
  45.           System.out.println(sBuffer.toString());
  46.           fpWriter.write(sBuffer.toString());
  47.           webclient.close();
  48.           fpWriter.close();
  49.        } catch (UnknownHostException e) {
  50.             System.err.println("无法访问指定主机."); 
  51.             System.exit(1);
  52.        } catch (IOException e) { 
  53.            System.err.println("下载失败,请检查输入地址是否正确。");  
  54.            System.exit(1);
  55.        } 
  56.   }
  57.  
  58. }