南宁网站建设是什么意思,中小微企业和个体工商户,wordpress头部修改,做网站是比特币的原创 野狗菌 希望你能喜欢 今天关于本文#xff1a;本文介绍一个简单Java爬虫#xff0c;获取网页源码#xff0c;爬取电话号码。本篇教程用我的博客一个测试网页演示。——野狗菌【希望你能喜欢】测试页面#xff1a;https://www.wayteam.xyz/archives/phonenumber源代码本文介绍一个简单Java爬虫获取网页源码爬取电话号码。本篇教程用我的博客一个测试网页演示。——野狗菌【希望你能喜欢】测试页面https://www.wayteam.xyz/archives/phonenumber源代码(注释写的很详细了太艰难就直接放代码不做多解释了)import java.io.*;import java.net.URL;import java.net.URLConnection;import java.util.regex.Matcher;import java.util.regex.Pattern;/*** author 野狗菌* 2020-04-06* 爬虫入门(一)获取网页源代码爬取手机号码* 微信公众号希望你能喜欢 (也可以搜索 foryouway )* 个人网站www.wayteam.xyz*/public class GetPhoneNumber {public static void main(String[] args) throws Exception {//创建一个要访问的urlURL url new URL(https://www.wayteam.xyz/archives/phonenumber);//这里以我的博客测试页面为例System.out.println(正在获取url网站的手机号码中-----请稍等);//无关紧要的代码只是为了友好的提示//打开上面获取的链接URLConnection urlConnection url.openConnection(); //新手提醒这个会抛出异常我为了方便全部抛出去不作处理throws Exception//创建一个指定的存储文件File file new File(phone.txt); //这里是相对路径表示存在这个同级目录下//创建一个字符输出流(从本程序输出到phone.txt文件)PrintWriter printWriter new PrintWriter(file);//程序执行到这里就会在对应位置创建对应文件了//创建一个输入流(这个输入输出是以本程序为参照)InputStream inputStream urlConnection.getInputStream();//把上面的字节流转化为字符流InputStreamReader inputStreamReader new InputStreamReader(inputStream);//把字符流转化为字符缓冲流BufferedReader bufferedReader new BufferedReader(inputStreamReader);//创建一个空的字符串来接收从字符缓冲流里接收的数据String htmlLine null;//手机号码的正则表达式用来匹配数据中的手机号码String regex 1[35789]\\d{9};//1第一位是1[35789]:第二位是35789中的一个\d{9}:剩余9位数任意(因为java中\需要转义所以这里用\\)。Pattern pattern Pattern.compile(regex);//把正则表达式编译成模式。//用while遍历上面的到的字缓冲流把值给上面的空字符串(readLine是一行一行读取网页源代码的)while ((htmlLine bufferedReader.readLine()) ! null){ //当字符流缓冲流没有为空时一直读取它。//创建一个匹配器来匹配上面的正则表达式模式Matcher matcher pattern.matcher(htmlLine);//循环匹配while (matcher.find()){ //当匹配成功时往下执行printWriter.println(matcher.group());//将匹配的数据用group转化为字符串写进字符输出流中}/*** 在控制台打印htmlLine,观察它是什么样的数据* 为了方便大家理解readLine执行过程给进程设置一个休眠时间不然数据哗啦一下直接出来* 这里我录制了一个动图大家也可以自己试试。*//*System.out.println(htmlLine);Thread.sleep(100);//100毫秒*/}/*** 关闭这两个流*/bufferedReader.close();printWriter.close();System.out.println(获取号码成功快去file查看结果吧\n-------by野狗菌\uD83D\uDC36);//无关紧要的代码只是为了友好的提示}}一个演示结果展示问题为什么这里获取的手机号码比我网页里面写的要多因为这些数据被我的匹配器匹配成号码了。。。。后面会介绍其他抓取方式可以避免这个问题。** **** **** **在公众号内发送【07】即可获取源码(你也可以直接自己创建项目把上面内容写进去)。