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

    }

  • 相关阅读:
    [BZOJ3535][Usaco2014 Open]Fair Photography
    [LOJ#2270][BZOJ4912][SDOI2017]天才黑客
    [UOJ#122][NOI2013]树的计数
    [BZOJ4816][Sdoi2017]数字表格
    [BZOJ2154]Crash的数字表格
    [BZOJ3529][Sdoi2014]数表
    [BZOJ2820]YY的GCD
    [BZOJ2301][HAOI2011]Problem b
    [UOJ#223][BZOJ4654][Noi2016]国王饮水记
    [BZOJ4653][Noi2016]区间
  • 原文地址:https://www.cnblogs.com/flying607/p/3443029.html
Copyright © 2011-2022 走看看