• Java 爬虫(获取指定页面中所有的邮箱地址)


    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;
      
     }

    }

  • 相关阅读:
    有一群志同道合的程序员朋友是怎样的体验?
    hdu1387 模拟队列
    hau 1870 愚人节的礼物(栈)
    hdu1509 优先队列
    hdu1837 看病要排队(优先队列)
    hdu 1237 简单计算器(栈处理)
    hdu1022 模拟栈
    又一个错误的认知!
    jmeter+ant+jenkins 接口自动化测试持续集成(送源码)
    P1197 [JSOI2008]星球大战
  • 原文地址:https://www.cnblogs.com/flying607/p/3443029.html
Copyright © 2020-2023  润新知