java springboot+jsoup写一段爬虫脚本 将指定地址的 图片链接 文本 超链接地址存入自己的属性类对象中

本文主要是介绍java springboot+jsoup写一段爬虫脚本 将指定地址的 图片链接 文本 超链接地址存入自己的属性类对象中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先 还是最基本的 要在 pom.xml 引入依赖

<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.14.1</version>
</dependency>

然后 我们可以在项目中创建一个属性类 我这里就叫 WebContent了
参考代码如下

package com.example.webdom.domain;public class WebContent {private String url;private String text;private String image;public WebContent(String url, String text, String image) {this.url = url;this.text = text;this.image = image;}public String getUrl() {return url;}public String getText() {return text;}public String getImage() {return image;}public void setUrl(String url) {this.url = url;}public void setText(String text) {this.text = text;}public void setImage(String image) {this.image = image;}@Overridepublic String toString() {return "WebContent{" +"a标签链接='" + url + '\'' +", 文本内容='" + text + '\'' +", 图片路径='" + image + '\'' +'}';}
}

这里 我们定义了三个变量 url 用来存 a标签的链接地址 text用来存a标签的文本信息 又或者图片的 alt内容 image用来存图片的url
定义了他们的get set方法 这里为了方便大家看 写了 toString函数
在这里插入图片描述
然后 我们在逻辑类 编写代码如下

package com.example.webdom.controller;import com.example.webdom.domain.WebContent;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;import java.io.IOException;
import java.util.ArrayList;
import java.util.List;public class WebCrawler {public static void main(String[] args) {String url = "https://www.baidu.com/?tn=48021271_25_hao_pg"; // 要爬取的网页URLtry {Document doc = Jsoup.connect(url).get(); // 通过Jsoup连接并获取网页内容List<WebContent> webContents = new ArrayList<>(); // 创建属性类对象列表Elements links = doc.select("a[href]"); // 选择所有带有href属性的<a>元素for (Element link : links) {String linkText = link.text(); // 获取链接文本String linkHref = link.attr("href"); // 获取链接URLWebContent webContent = new WebContent(linkHref, linkText, null); // 创建属性类对象webContents.add(webContent); // 添加到对象列表}Elements images = doc.select("img[src]"); // 选择所有带有src属性的<img>元素for (Element image : images) {String imageUrl = image.attr("src"); // 获取图片URLString imageAlt = image.attr("alt"); // 获取图片alt属性WebContent webContent = new WebContent(null, imageAlt, imageUrl); // 创建属性类对象webContents.add(webContent); // 添加到对象列表}for (WebContent webContent : webContents) {System.out.println("----------------");System.out.println(webContent);}} catch (IOException e) {e.printStackTrace();}}
}

这里 我们用的百度首页的链接做测试 因为百度肯定技术是很好的 不怕我们访问
然后 我们拿取a标签 通过text函数 拿到文本 通过attr获取href 属性 拿到链接地址

然后 拿到所有的 img图 或许 src 与 alt属性

最后 输出list集合
运行代码如下
在这里插入图片描述
也是非常的完美

这篇关于java springboot+jsoup写一段爬虫脚本 将指定地址的 图片链接 文本 超链接地址存入自己的属性类对象中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/492538

相关文章

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Pandas利用主表更新子表指定列小技巧

《Pandas利用主表更新子表指定列小技巧》本文主要介绍了Pandas利用主表更新子表指定列小技巧,通过创建主表和子表的DataFrame对象,并使用映射字典进行数据关联和更新,实现了从主表到子表的同... 目录一、前言二、基本案例1. 创建主表数据2. 创建映射字典3. 创建子表数据4. 更新子表的 zb

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Java 实用工具类Spring 的 AnnotationUtils详解

《Java实用工具类Spring的AnnotationUtils详解》Spring框架提供了一个强大的注解工具类org.springframework.core.annotation.Annot... 目录前言一、AnnotationUtils 的常用方法二、常见应用场景三、与 JDK 原生注解 API 的

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令