如何在网页中提取Email地址

      开博好久了,今天第一次发表技术文档,之前总是将一些好的事例保存在电脑,时间久了找起来也很麻烦,所以还是放在博客里进行归类比较方便,这样也能将自己在学习过程中的一些心得体会分享给大家,也能给需要的人一点帮助。

      一个朋友需要我帮忙给写一个能够提取网页中Email地址的小程序,所以就用Java语言帮他做了一个,有不完善的地方还请大家谅解,并提出来,一起学习。

     源代码详见附件!加压后将将readme.htm放在F:\\share\\readme.htm,也可自定义目录,自定义目录需要修改对应的代码文件路径。源代码.rar

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* email小爬虫
* @author xiaoxin
* @date 2014/10/29
*/
public class EmailSpider {
    public static void main(String[] args) {
        try {
            BufferedReader br = new BufferedReader(new FileReader("F:\\share\\readme.htm"));
            BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\share\\email.txt"));
            String line = "";
            while((line = br.readLine()) != null) {
                parse(line, bw);
            }
            bw.flush();
            bw.close();
            br.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 解析Email的方法
     * @param line 按行过滤
     * @param bw 输出到email.txt
    */
    private static void parse(String line, BufferedWriter bw) {
        Pattern p = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");
        Matcher m = p.matcher(line);
        try {
            while(m.find()) {
                bw.write(m.group() + ";\r\n"); //换行显示,适用于windows、Linux下为\r、Mac下为\n
         //     bw.newLine();//建议用这个换行
                System.out.println(m.group());
            }
        } catch (IOException e) {
            e.printStackTrace();
            System.exit(-1);
        }
    }
}
posted @ 2014-12-28 21:28  古城西安_小辛  阅读(566)  评论(3编辑  收藏  举报