win2012服务器做网站,科技公司网站建设,遵义企业网站建设,jsp 做网站还是php#x1f36c; 博主介绍#x1f468;#x1f393; 博主介绍#xff1a;大家好#xff0c;我是 hacker-routing #xff0c;很高兴认识大家~
✨主攻领域#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】
#x1f389;点赞➕评论➕收藏 … 博主介绍 博主介绍大家好我是 hacker-routing 很高兴认识大家~
✨主攻领域【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】
点赞➕评论➕收藏 养成习惯一键三连
欢迎关注一起学习一起讨论⭐️一起进步文末有彩蛋
作者水平有限欢迎各位大佬指点相互学习进步 目录
练习
本地爬虫和网络爬虫
本地爬虫代码如下
网络爬虫代码如下
练习需求
代码如下 练习
本地爬虫和网络爬虫
有如下文本请按照要求爬取数据。
Java自从95年问世以来经历了很多版本目前企业中用的最多的是lava8和Iava11因为这两个是
长期支持版本下一个长期支持版本是Java17相信在未来不久Java17也会逐渐登上历史舞台
要求找出里面所有的JavaXX
本地爬虫代码如下
这里用while循环简单不过也可以像下面的那种就是一直重复写但是跟麻烦
package Regex;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class pattern {public static void main(String[] args) {/* 有如下文本请按照要求爬取数据。Java自从95年问世以来经历了很多版本目前企业中用的最多的是Java8和Java11因为这两个是长期支持版本下一个长期支持版本是Java17相信在未来不久Java17也会逐渐登上历史舞台要求:找出里面所有的JavaXX*/String str Java自从95年问世以来经历了很多版本目前企业中用的最多的是Java8和Java11 因为这两个是长期支持版本下一个长期支持版本是Java17相信在未来不久Java17也会逐渐登上历史舞台;//method1(str);//1、获取正则表达式的对象Pattern p Pattern.compile(Java\\d{0,2});//2、获取文本匹配器的对象//拿着m去读取str找符合p规则的子串Matcher m p.matcher(str);//3、利用循环获取while (m.find()){String s m.group();System.out.println(s);}}private static void method1(String str) {//pattern:表示正则表达式//Matcher文本匹配器作用按照正则表达式的规则去读取字符串从头开始读取。// 在大串中去找符合匹配的字串//获取正则表达式的对象Pattern p Pattern.compile(Java\\d{0,2});//获取文本匹配器的对象//m文本匹配器的对象//str大串//p规则Matcher m p.matcher(str);//拿着文本匹配器从头开始读取寻找是否有满足的子串//如果没有方法返回false//如果有返回true在底层记录子串的起始索引和结束索引1//04boolean b m.find();//方法底层全部会按照find()方法进行索引进行字符串的截取//substring(起始索引结束索引);包头不包尾//(0,4)不包含4 索引String s1 m.group();System.out.println(s1);//第二次调用find方法b m.find();//第二次调用group方法的时候会根据find方法记录的索引再次截取子串String s2 m.group();System.out.println(s2);}
} 网络爬虫代码如下
package com.itheima.a08regexdemo;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexDemo7 {public static void main(String[] args) throws IOException {/* 扩展需求2:把连接:https://m.sengzan.com/jiaoyu/29104.html?ivk sa1025883i中所有的身份证号码都爬取出来。*///创建一个URL对象URL url new URL(https://m.sengzan.com/jiaoyu/29104.html?ivk sa1025883i);//连接上这个网址//细节:保证网络是畅通URLConnection conn url.openConnection();//创建一个对象去读取网络中的数据BufferedReader br new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;//获取正则表达式的对象patternString regex [1-9]\\d{17};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
手机号:1851251675818512508907或者联系邮箱:boniuitcast.cn
座机电话:01036517895010-98951256邮箱:bozaiitcast.cn
热线电话:400-618-9090 400-618-400040061840004006189090
代码如下
package Regex;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class pattern2 {public static void main(String[] args) {/*需求:把下面文本中的座机电话邮箱手机号热线都爬取出来。来黑马程序员学习Java手机号:1851251675818512508907或者联系邮箱:boniuitcast.cn座机电话:01036517895010-98951256邮箱:bozaiitcast.cn热线电话:400-618-9090 400-618-400040061840004006189090手机号的正则表达式:1[3-9]\d{9}邮箱的正则表达式:\w[\w[^_]]{2,6}(\.[a-zA-Z]{2,3}){1,2}座机电话的正则表达式:θ\d{2,3}-?[1-9]\d{4,9}热线电话的正则表达式:400-?[1-9]\\d{2}-?[1-9]\\d{3}*/String s 来实验室程序员学习Java 电话:1851251675818512508907 或者联系邮箱:boniuitcast.cn 座机电话:01036517895010-98951256 邮箱:bozaiitcast.cn 热线电话:400-618-9090 400-618-400040061840004006189090;String regex (1[3-9]\\d{9})|(\\w[\\w[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}) |(0\\d{2,3}-?[1-9]\\d{4,9}) (400-?[1-9]\\d{2}-?[1-9]\\d{3});//1、获取正确的正则表达式的对象Pattern p Pattern.compile(regex);//2、获取文本匹配的对象//利用m去读取s会按照p的规则找里面的小串Matcher m p.matcher(s);//3、利用循环获取每一个数据while (m.find()){String str m.group();System.out.println(str);}}
}