首页 > 图灵资讯 > 技术篇>正文
前言
一、本地爬虫
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();
这个代码的网站可能不存在。如果你想看结果,你可以在网上找到类似内容的网站