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

    }

  • 相关阅读:
    【BZOJ-1507】Editor 块状链表
    【BZOJ-4456】旅行者 分治 + 最短路
    【BZOJ-3262】陌上花开 CDQ分治(3维偏序)
    【BZOJ-1176&2683】Mokia&简单题 CDQ分治
    【BZOJ-1962】模型王子 DP 猜数问题
    【BZOJ-3786】星系探索 Splay + DFS序
    【BZOJ-1552&3506】robotic sort&排序机械臂 Splay
    【BZOJ-4688】One-Dimensional 矩阵乘法
    【BZOJ-4692】Beautiful Spacing 二分答案 + 乱搞(DP?)
    Java中接口式的匿名内部类的构造方法
  • 原文地址:https://www.cnblogs.com/flying607/p/3443029.html
Copyright © 2011-2022 走看看