java学习之正则表达式网络爬取邮箱

本文介绍了一个简单的Java爬虫程序,该程序用于从指定网页中抓取符合正则表达式的电子邮件地址,并将结果输出到本地文件。通过分析网页源代码并应用正则表达式匹配,此程序能够有效提取电子邮件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package Ray.regex;

import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Crawler {
	public static void main(String[] args) {
		PrintWriter pw =null;
		InputStream is = null;
		BufferedReader bReader = null;
		try {
			URL url = new URL("http://tieba.baidu.com/p/1321631274");
			is= url.openStream();
			bReader = new BufferedReader(new InputStreamReader(is, "utf-8"));
			String str = null;
			String regex = "[1-9a-zA-Z][0-9a-zA-Z_]*@[1-9a-zA-Z][0-9a-zA-Z_]*(\\.[a-zA-Z]+){1,3}";
			Pattern p = Pattern.compile(regex);
			pw = new PrintWriter(new FileWriter("E:/A/hello.txt"));
			while((str=bReader.readLine())!=null){
			//	System.out.println(str);
			Matcher matcher = p.matcher(str);	
			while(matcher.find()){
				String group = matcher.group();
				pw.println(group);
				System.out.println(group);
				pw.flush();
				
			}
			}
						
		} catch (MalformedURLException e) {	
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			try {
				bReader.close();
				pw.close();
				is.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

学习正则表达式的时候简单测试了一下网络上爬取邮箱,简单写了一个demo


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值