JAVA题目笔记(十三) 爬虫

一、网络爬取

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;
        //获取正则表达式的对象 pattern
        String 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);
        }
    }
}
相关推荐
sg_knight40 分钟前
Spring Cloud与RabbitMQ深度集成:从入门到生产级实战
java·spring boot·spring·spring cloud·消息队列·rabbitmq·stream
Chan161 小时前
批处理优化:从稳定性、性能、数据一致性、健壮性、可观测性五大维度,优化批量操作
java·spring boot·后端·性能优化·java-ee·intellij-idea·优化
行者阿毅1 小时前
langchain4j+DashScope (通义千问)文生图
java·ai作画
Bug退退退1231 小时前
Java 网络流式编程
java·服务器·spring·sse
IT机器猫1 小时前
RabbitMQ
java·rabbitmq·java-rabbitmq
小杨的全栈之路1 小时前
冒泡、插入、选择、归并、堆排序:从名字由来到Java实现,一篇讲透
java·排序算法
yinke小琪2 小时前
面试官:谈谈为什么要拆分数据库?有哪些方法?
java·后端·面试
自由的疯2 小时前
java DWG文件转图片
java·后端·架构
小兔崽子去哪了2 小时前
EasyExcel 使用
java·excel
青云交2 小时前
Java 大视界 -- Java 大数据机器学习模型的对抗攻击与防御技术研究
java·机器学习模型·对抗攻击·java 大数据·防御技术·对抗训练·i - fgsm