import java.io.*;import java.util.regex.*;import java.text.DateFormat;import java.util.*;import java.net.*;public class SpiderDemo{ public static File file ; public static void main(String args[]) throws Exception{ long startTime = System.currentTimeMillis(); //起始时间 creatFile(); //getMailFromTxt();getMailFromURl();long endTime = System.currentTimeMillis(); //结束时间System.out.println("总共耗时:" + (endTime-startTime) + "毫秒......");} //创建TXT文件用于保存邮箱地址public static void creatFile(){ file = new File("G:\\My Java\\Regex\\spiderFile.txt"); //创建对象并给出路径if(!file.exists()) //判断文件是否存在 { try{ file.createNewFile(); //按照指定路径创建文件 System.out.println("文件创建成功......"); } catch(IOException e){ e.printStackTrace(); } } else System.out.println("文件已存在......");}//从TXT文件中获取邮箱地址public static void getMailFromTxt() throws Exception{ BufferedReader bufr = new BufferedReader(new FileReader("mail.txt"));String line = null;String mailreg = "\\w+@\\w+(\\.\\w+)+"; //定义规则Pattern p = Pattern.compile(mailreg); //指定正则表达式规则while((line = bufr.readLine())!=null) //从缓冲区中将内容全部读取出来{ Matcher m =p.matcher(line);while(m.find()){ System.out.println(m.group()); }}}//从网页中获取邮箱地址public static void getMailFromURl() throws Exception{ long n = 1849962706;Writer out = null; out = new FileWriter(file,true);for(;n<2051291221;n++){ URL url = new URL("http://tieba.baidu.com/p/" + n);URLConnection conn = url.openConnection();BufferedReader bufIn = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line = null;String mailreg = "\\w+@\\w+(\\.\\w+)+";Pattern p = Pattern.compile(mailreg);int i = 0;while((line = bufIn.readLine())!=null){ Matcher m =p.matcher(line);while(m.find()){ System.out.println(m.group());out.write("NO." + (++i)+ ": " + m.group() + " "); }}System.out.println("共获取到 " + i + "个邮箱地址......");DateFormat df = DateFormat.getDateTimeInstance(); //格式化时间 System.out.println("当前时间:" + df.format(new Date()) + "......");out.write("共获取到 " + i + "个邮箱地址......" + df.format(new Date())); } out.close();}}}