Java 抓取任意网址中的所有Email地址

概要:

Java 抓取任意网址中的所有Email地址

| |目录

package net.xsoftlab.baike;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
 * 从网页中抓取邮箱地址
 * 正则表达式:java.util.regex.Pattern
 * 1.定义好邮箱的正则表达式
 * 2.对正则表达式预编译
 * 3.对正则和网页中的邮箱格式进行匹配
 * 4.找到匹配结果
 * 5.通过网络程序,打通机器和互联网的一个网站的连接
 */
public class EmailAddressFetch {
	public static void main(String[] args) throws IOException {
        // 1.定义正则表达式
		String emailRegex = "[0-9a-zA-Z_]+@[0-9a-zA-Z]+(\\.[a-zA-Z]+)+";
        // 2.进行正则编译
        Pattern p = Pattern.compile(emailRegex);
        // 3.机器连接互联网
        URL url = new URL("http://baike.xsoftlab.net");// 在这里可以修改网页地址
        URLConnection connection = url.openConnection();
        // 4.机器和互联网上的网址已经连通,连接的通路上建立好了I/O流
        InputStream in = connection.getInputStream();
        InputStreamReader isr = new InputStreamReader(in);
        BufferedReader bf = new BufferedReader(isr);
        String line = null;
        while ((line = bf.readLine()) != null) {
            // System.out.println(line);//输出网页源代码
            // 每次readLine()读取网页中的一行,就和编译好的正则表达式进行匹配
            Matcher m = p.matcher(line);
            // 进行查找Matcher find
            while (m.find()) {
                System.out.println(m.group());
            }
        }
        bf.close();
    }
}
评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
资料加载中...
已关注 , 取消