java 爬ts文件 java爬虫代码示例

发布时间:2023-05-17 11:34:00

文章目录

  • 前言
  • 一、本地爬虫
  • 二、网络爬虫

前言

请按要求爬取以下文本的数据。 java自1995年推出以来,经历了许多版本。目前,java8和java11在企业中使用最多,因为这两个是长期支持版本,下一个长期支持版本是java17。我相信java17将在不久的将来逐渐登上历史舞台 要求:找出里面所有的javaXX 要完成上述要求,爬虫需要完成


一、本地爬虫

首先,我们应该首先了解几类: Pattern类 :表示正则表达式 Matcher类 : 文本匹配器的功能是根据正则表达式的规则读取字符串,并从头开始读取。在大串中找到符合匹配规则的子串 代码示例如下:

///本地爬虫        String str = “java自1995年推出以来,经历了许多版本,目前企业使用最多的是java8和java11,” +                “因为这两个是长期支持版,下一个长期支持版是java17,我相信java17将在不久的将来逐渐登上历史舞台。;        ///// :表示正则表达式        /////:文本匹配器        //1.获得正则表达式对象        Pattern p = Pattern.compile("java\\d{0,2}");        //2.获取文本匹配器的对象        //m: 文本匹配器的对象        //str:大串        //p: 规则        ///m在str中找到符合p规则的小串        Matcher m = p.matcher(str);        //find方法:从头开始读取文本匹配器,寻找符合规则的字串        //如果没有,方法返回falsee        //如果有,返回true,记录字串的起始索引和底部 结束索引+1        //上面的文本是 0,4        boolean b = m.find();        ///方法底层将根据find方法记录的索引截取字符串        //subString(起始索引,结束);包头不包尾        //(0,4)但不包括4索引索引        ///会议将截取的小串返回        String s1 = m.group();        System.out.println(s1);//输出:java        ///第二次调用find时,以下内容将继续阅读        b = m.find();        String s2 = m.group();        System.out.println(s2);//输出:java8

优化上述代码是因为不知道文本中有多少子串符合要求:

///本地爬虫        String str = “java自1995年推出以来,经历了许多版本,目前企业使用最多的是java8和java11,” +                “因为这两个是长期支持版,下一个长期支持版是java17,我相信java17将在不久的将来逐渐登上历史舞台。;        //1.获得正则表达式对象        Pattern p = Pattern.compile("java\\d{0,2}");        //2.获取文本匹配器的对象        Matcher m = p.matcher(str);        //使用循环获取:        while(m.find()){            String s = m.group();            System.out.println(s);        }/*java        java8        java11        java17        java17*/
二、网络爬虫

需求: 把链接:https://www.xxx.yyy.cn 所有的身份证号码都被爬出来了 代码示例如下:

//1.创建URL对象        URL url = new URL("https://www.xxx.yyy.cn");        //2.连接此网站        ///细节:确保网络畅通        URLConnection conn = url.openConnection();        //3.创建一个对象读取网络中的数据        BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));        String regex = "[1-9]\\d{17}";        String line;        Pattern pattern = Pattern.compile(regex);        ///阅读时每次阅读一整行        while ((line = br.readLine()) != null){            ///拿着文本匹配器的对象matcher按照pattern的规则读取当前的信息            Matcher matcher = pattern.matcher(line);            while (matcher.find()){                System.out.println(matcher.group());            }        }        br.close();

这个代码的网站可能不存在。如果你想看结果,你可以在网上找到类似内容的网站

上一篇 java 判断半年前 java判断年月日
下一篇 String Date Calendar之间的转换

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题