Java 爬蟲(獲取指定頁面中所有的郵箱地址)

劍握在手發表於2013-11-26

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


/*
 * 網頁爬蟲:其實就一個程式用於在網際網路中獲取符合指定規則的資料。
 *
 * 爬取郵箱地址。
 *
 */
public class RegexTest2 {

 /**
  * @param args
  * @throws IOException
  */
 public static void main(String[] args) throws IOException {

  
  List<String> list = getMailsByWeb();
  
  for(String mail : list){
   System.out.println(mail);
  }
 }
 
 public static List<String> getMailsByWeb() throws IOException {
  
  //1,讀取原始檔。
//    BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html"));
  
  URL url = new URL("http://192.168.1.100:8080/myweb/mail.html");
  
  BufferedReader bufIn = new BufferedReader(new InputStreamReader(url.openStream()));
    
  //2,對讀取的資料進行規則的匹配。從中獲取符合規則的資料.
  String mail_regex = "\\w+@\\w+(\\.\\w+)+";
  
  List<String> list = new ArrayList<String>();
  
  
  Pattern p = Pattern.compile(mail_regex);
  
  String line = null;
  
  while((line=bufIn.readLine())!=null){
   
   Matcher m = p.matcher(line);
   while(m.find()){
    //3,將符合規則的資料儲存到集合中。
    list.add(m.group());
   }
   
  }
  return list;
 }

 public static List<String>  getMails() throws IOException{
  
  //1,讀取原始檔。
  BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html"));
  
  //2,對讀取的資料進行規則的匹配。從中獲取符合規則的資料.
  String mail_regex = "\\w+@\\w+(\\.\\w+)+";
  
  List<String> list = new ArrayList<String>();
  
  
  Pattern p = Pattern.compile(mail_regex);
  
  String line = null;
  
  while((line=bufr.readLine())!=null){
   
   Matcher m = p.matcher(line);
   while(m.find()){
    //3,將符合規則的資料儲存到集合中。
    list.add(m.group());
   }
   
  }
  return list;
  
 }

}

相關文章