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);
        }
    }
}
相关推荐
计算机编程-吉哥4 分钟前
计算机毕业设计 基于 SpringBoot + Vue 的剧本杀系统 Java毕业设计【任务书、开题报告、中期报告、论文、源码】
java·vue.js·spring boot·毕业设计·课程设计·计算机毕业设计选题
code2cat14 分钟前
【随笔】RAG语义缓存:问题很相似,答案就能直接复用吗
java·缓存·知识库·rag
Rain的Java大神之路36 分钟前
面了 50 个候选人,90% 都挂在 LeetCode 3 无重复字符的最长子串:滑动窗口的 5 个致命坑
java·后端·leetcode
西凉的悲伤37 分钟前
Jsoup 库 HTML 解析详解
java·前端·html·jsoup
十碗饭吃不饱1 小时前
Apache POI 踩坑:setFontFamily 二次设置字体不生效、样式残留问题深度解析
java·word·apache
我命由我123451 小时前
6-2.Python 异常处理 - 异常捕获(捕获指定异常、常见异常类型、异常信息)
java·运维·开发语言·python·http·https·java-ee
zaizai10071 小时前
STL深度剖析2
java·c++·算法
周厉1 小时前
WebSocket 使用场景与实现方法:Java + Vue3 全栈实战
java·websocket·vue3·websocket双向通讯
Wanderer X1 小时前
MiniMax-H3(ref2va)架构与推理方法笔记
笔记
wdfk_prog1 小时前
lwip教程 38:从 `lwipopts.h` 到 Port Contract——lwIP 裁剪、构建选择、OS Port 与 Network Port
java·开发语言