Java通过Jsoup解析HTML文件,SpringBoot整合

本文介绍了如何在SpringBoot项目中利用Jsoup库解析HTML文件,包括获取Document对象、DOM操作和选择器查找元素。还提供了一个实际的代码示例,展示如何解析HTML中的表格数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三、Jsoup用法简介


1、获得Document对象


Document document = Jsoup.parse(new File("D:\\information\\test.html"), "utf-8");

2、使用DOM的方式来取得

获得Document对象后,接下来就是解析Document对象,并从中获取我们想要的元素了。

Document中提供了丰富的方法来获取指定元素。

  1. getElementById(String id):通过id来获取

  2. getElementsByTag(String tagName):通过标签名字来获取

  3. getElementsByClass(String className):通过类名来获取

  4. getElementsByAttribute(String key):通过属性名字来获取

  5. getElementsByAttributeValue(String key, String value):通过指定的属性名字,属性值来获取

  6. getAllElements():获取所有元素

3、通过选择器查找元素

通过类似于css或jQuery的选择器来查找元素

使用的是Element类的下记方法:


public Elements select(String cssQuery)

通过传入一个类似于CSS或jQuery的选择器字符串,来查找指定元素。

四、Jsoup代码实例


博客的初衷是解析HTML中的table,将其转化为Bean。

1、引入依赖


<dependency>

    <groupId>org.jsoup</groupId>

    <artifactId>jsoup</artifactId>

    <version>1.12.1</version>

</dependency>

2、代码实例


//通过Jsoup获取table中对应标签的信息

private static void HTMLParserMapInit() throws IOException {

		Document document = Jsoup.parse(new File("D:\\information\\test.html"), "utf-8");

        Elements table_title = document.select(".title");

        Elements tables = document.select(".left");

        for(int i=0;i<table_title.size();i++) {

        	String title = table_title.get(i).text();

            String keyLevel1 = "";

		    String keyLevel2 = "";

		    String value = "";

		    String tag_rowspan = "";

		    String tag_colspan = "";

		    String tag_class = "";

		    String tag_text = "";

		    String title = "";

            String table = tables.get(i);

		    Elements tr =  table.select("tr");

		    for(Element eTr : tr){

			    Elements td = eTr.select("td");

			    for(Element eTd : td){

				    tag_rowspan = eTd.attr("rowspan");

				    tag_colspan = eTd.attr("colspan");

				    tag_class = eTd.attr("class");

				    tag_text = eTd.text();

				    if(!tag_colspan.equals("")) {

					    title += tag_text + ",";

				    }

				    if((tag_class.equals("class2"))) {

					    keyLevel1 = tag_text;

				    }else if((tag_class.equals("class1"))) {

					    keyLevel2 = tag_text;

				    }else if(tag_class.equals("")){

					    value += tag_text+",";

				    }

			        }

			    if(!(keyLevel1.equals("")&&keyLevel1.equals(""))) {

				    if(!value.equals("")) {

					    value = value.substring(0,value.length() - 1);

					    shiftInformationHashMap.put(keyLevel1 + "," + keyLevel2, value);

				    }

				        value = "";                                                                                                                                             

                }

		    }

		    title = title.toString().substring(0,title.length() - 1);

		    System.out.println("title,"+title);

		    System.out.println("hashMap,"+shiftInformationHashMap.toString());

				

		}

	}

将HTML中数据解析成hashmap,一切就一目了然了。

最后

我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习,戳这里免费领取

已经将知识体系整理好(源码,笔记,PPT,学习视频)免费领取。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

家参考及学习,戳这里免费领取

已经将知识体系整理好(源码,笔记,PPT,学习视频)免费领取。

[外链图片转存中…(img-TYLV3Pd6-1628347362267)]

[外链图片转存中…(img-oySiILVO-1628347362271)]

[外链图片转存中…(img-jDv5EZ9X-1628347362273)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值