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);
        }
    }
}
相关推荐
是誰萆微了承諾10 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
皮皮林55110 小时前
SpringBoot 全局/局部双模式 Gzip 压缩实战:14MB GeoJSON 秒变 3MB
java·spring boot
weixin_4569042710 小时前
Spring Boot 用户管理系统
java·spring boot·后端
趁你还年轻_10 小时前
异步编程CompletionService
java
DKPT10 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
sibylyue10 小时前
Guava中常用的工具类
java·guava
奔跑吧邓邓子11 小时前
【Java实战㉞】从0到1:Spring Boot Web开发与接口设计实战
java·spring boot·实战·web开发·接口设计
ST.J11 小时前
前端笔记2025
前端·javascript·css·vue.js·笔记
专注API从业者11 小时前
Python/Java 代码示例:手把手教程调用 1688 API 获取商品详情实时数据
java·linux·数据库·python
Suckerbin11 小时前
LAMPSecurity: CTF5靶场渗透
笔记·安全·web安全·网络安全