java爬虫抓取网页数据(是不是表达式有所了解,那么不仅可以抓取网页上的邮箱,)

优采云 发布时间: 2021-11-25 01:13

  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截图如下:

  

  

  测试网址:通过这个例子,读者可以轻松抓取网页上的邮箱,如果读者正确

  不仅可以抢到邮箱,还可以抢到手机号和ip地址,等你想抢的所有信息。是不是很有趣?

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线