一个简单java爬虫爬取网页中邮箱并保存

此代码为一十分简单网络爬虫,仅供娱乐之用。

java代码如下:

 1 package tool;

 2 import java.io.BufferedReader;

 3 import java.io.File;

 4 import java.io.FileWriter;

 5 import java.io.InputStreamReader;

 6 import java.io.Writer;

 7 import java.net.URL;

 8 import java.net.URLConnection;

 9 import java.sql.Time;

10 import java.util.Scanner;

11 import java.util.regex.Matcher;

12 import java.util.regex.Pattern;

13 public class Ma {

14     public static void main(String[] args) throws Exception {// 本程序内部异常过多为了简便,不一Try,直接抛给虚拟机

15         long StartTime = System.currentTimeMillis();

16         System.out.println("--     欢迎使用小刘简易网页爬虫程序      --");

17         System.out.println("");

18         System.out.println("--请输入正确的网址如http://www.baidu.com--");

19         Scanner input = new Scanner(System.in);// 实例化键盘输入类

20          

21         String webaddress = input.next();// 创建输入对象

22         File file = new File("E:" + File.separator + "爬虫邮箱统计文本.txt");// 实例化文件类对象

23          

24                                                                 // 并指明输出地址和输出文件名

25          

26          

27         Writer outWriter = new FileWriter(file);// 实例化outWriter类

28          

29         URL url = new URL(webaddress);// 实例化URL类。

30          

31         URLConnection conn = url.openConnection();// 取得链接

32          

33         BufferedReader buff = new BufferedReader(new InputStreamReader(

34                  

35                                                 conn.getInputStream()));// 取得网页数据

36          

37         String line = null;

38         int i=0;

39         String regex = "\\w+@\\w+(\\.\\w+)+";// 声明正则,提取网页前提

40          

41         Pattern p = Pattern.compile(regex);// 为patttern实例化

42          

43         outWriter.write("该网页中所包含的的邮箱如下所示:\r\n");

44         while ((line = buff.readLine()) != null) {

45          

46             Matcher m = p.matcher(line);// 进行匹配

47              

48             while (m.find()) {

49                 i++;

50                 outWriter.write(m.group() + ";\r\n");// 将匹配的字符输入到目标文件

51             }

52         }

53         long StopTime = System.currentTimeMillis();

54         String UseTime=(StopTime-StartTime)+"";

55         outWriter.write("--------------------------------------------------------\r\n");

56         outWriter.write("本次爬取页面地址:"+webaddress+"\r\n");

57         outWriter.write("爬取用时:"+UseTime+"毫秒\r\n");

58         outWriter.write("本次共得到邮箱:"+i+"条\r\n");

59         outWriter.write("****谢谢您的使用****\r\n");

60         outWriter.write("--------------------------------------------------------");

61         outWriter.close();// 关闭文件输出操作

62         System.out.println(" —————————————————————\t");

63         System.out.println("|页面爬取成功,请到E盘根目录下查看test文档|\t");

64         System.out.println("|                                         |");

65         System.out.println("|如需重新爬取,请再次执行程序,谢谢您的使用|\t");

66         System.out.println(" —————————————————————\t");

67     }

68 }

 


txt截图如下:

一个简单java爬虫爬取网页中邮箱并保存

一个简单java爬虫爬取网页中邮箱并保存

测试网址:http://tieba.baidu.com/p/2976611415,通过此例读者可以轻松抓取网页上的邮箱,如果读者对正则表达式有所了解,那么

不仅可以抓取邮箱,还可以抓取电话号码,ip地址等待一切想要抓取的信息.是不是 很有趣呢!

你可能感兴趣的:(java)