当前位置: 首页 > news >正文

Java爬虫入门:从网页抓取到数据提取(正则表达式篇)

  在当今信息爆炸的时代,如何从浩瀚的互联网中快速、准确地获取所需数据成为了一个重要的技能。网络爬虫技术应运而生,它允许我们自动化地访问网页并提取其中的信息。Java作为一门功能强大且拥有丰富生态的编程语言,在构建网络爬虫方面也表现出色。

很多时候,我们并不需要网页的全部内容,而仅仅是对其中符合特定格式或特征的数据感兴趣,例如:电子邮件地址、电话号码、特定商品的链接或价格、或者像本例中将要演示的——身份证号码格式的字符串。这时,强大的**正则表达式(Regular Expression)**就派上了用场。它能帮助我们定义复杂的文本匹配规则,从而在抓取到的网页源码中精确地筛选和提取出目标数据。

本文将通过一个具体的Java代码示例,演示如何结合使用Java的网络编程API(URL, URLConnection)和正则表达式库(java.util.regex),实现以下目标:

  1. 连接到指定的网页URL。

  2. 读取网页的HTML源代码。

  3. 利用预定义的正则表达式,在源代码中查找并提取所有符合特定模式的数据(以提取类似身份证号码的18位数字串为例)。

让我们一步步深入代码,了解其工作原理。

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 RegexDemo7 {public static void main(String[] args) throws IOException {/* 扩展需求2:把连接中所有的号码都爬取出来。*///创建一个URL对象URL url = new URL("https://new.gugu**.com/sfz");//连接上这个网址//细节:保证网络是畅通URLConnection conn = url.openConnection();//创建一个对象去读取网络中的数据BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;//获取正则表达式的对象patternString regex = "[1-9]\\d{17}";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();}
}

相关文章:

  • Weaviate使用入门:从零搭建向量数据库的完整指南
  • 云原生--核心组件-容器篇-2-认识下Docker(三大核心之镜像,容器,仓库)
  • 【Pandas】pandas DataFrame rdiv
  • 神经网络与计算机视觉
  • 计算机视觉中的二值马尔科夫随机场
  • Spring Boot 升级指南(2.x → 3.x)
  • 北斗导航 | 基于Transformer+LSTM+激光雷达的接收机自主完好性监测算法研究
  • Adriuno:编程语言基础
  • 【Java】IntelliJ IDEA 社区版安装
  • 关于GoWeb(1)
  • win软件图标提取工具软件下载及使用教程
  • 通过门店销售明细表用SQL得到每月每个门店的销冠和按月的同比环比数据
  • Spring Boot 连接 Microsoft SQL Server 实现登录验证
  • Linux:进程间通信->命名管道
  • Kafka + Kafka-UI
  • RAG vs 微调:大模型知识更新的最优解之争
  • TypeScript 中 Map 的全面指南:从基础到高级应用
  • 观察者模式 (Observer Pattern)
  • 【Android】app调用wallpaperManager.setBitmap的隐藏权限
  • Redux和MobX有什么区别
  • 国家税务总局:“二套转首套”可以享受贷款利息个税专项扣除
  • 广东一公司违规开展学科培训被罚没470万,已注销营业执照
  • 上海浦东单价超10万楼盘228套房源开盘当天售罄,4月已有三个新盘“日光”
  • 上海质子重离子医院已收治8000例患者,基本覆盖国内常见恶性肿瘤
  • 俄联邦安全局:俄军高级官员汽车爆炸案嫌疑人已被捕
  • 第二十届华表奖提名名单公布,张译、王一博、马丽、郭帆等入围