zoukankan      html  css  js  c++  java
  • 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;
      
     }

    }

  • 相关阅读:
    蛙蛙请教:把一段c算法代码转换成c#代码。
    和病毒折腾了两天
    WawaKM预览版发布,欢迎大家测试反馈哦
    (转)深度分析如何在Hadoop中控制Map的数量
    [转载]JAVA操作符
    (转)Hive Index
    Hadoop++:Hadoop的局部性能改良
    深入了解Hive Index具体实现
    Linux echo命令
    (转)带索引的mapReduce
  • 原文地址:https://www.cnblogs.com/flying607/p/3443029.html
Copyright © 2011-2022 走看看