一、网络爬取
java">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 Main {public static void main(String[] args) throws CloneNotSupportedException, IOException {//创建URL对象URL url=new URL("https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9556566747732783179%22%7D&n_type=-1&p_from=-1");//连接网络URLConnection conn=url.openConnection();//创建对象去读取网络中的数据BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;//获取正则表达式的对象 patternString regex=""; //正则表达式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">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 Main {public static void main(String[] args) throws CloneNotSupportedException, IOException {//爬取文本中对应数据:电话、邮箱、手机号、热线//手机号String regex1="1[3-9]\\d{9}";//邮箱String regex2="\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}";//座机String regex3="0\\d{2,3}-?[1-9]\\d{4,9}";//热线电话String regex4="400-?[1-9]\\d{2}-?[1-9]\\d{3}";//正则表达式整合String regex5="(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})";String s="来黑马程序员学习Java,"+"电话:18512516758,18512508907"+"或者联系邮箱:boniu@itcast.cn,"+"座机电话:01036517895,010-98951256"+"邮箱:bozai@itcast.cn, 热线电话:400-618-9090,400-618-4000,4006184000,4006189090";Pattern p=Pattern.compile(regex5);Matcher m=p.matcher(s);while(m.find()){String str=m.group();System.out.println(str);}}
}