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

搜索引擎

开发平台:

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