三、Jsoup用法简介
1、获得Document对象
Document document = Jsoup.parse(new File("D:\\information\\test.html"), "utf-8");
2、使用DOM的方式来取得
获得Document对象后,接下来就是解析Document对象,并从中获取我们想要的元素了。
Document中提供了丰富的方法来获取指定元素。
-
getElementById(String id):通过id来获取
-
getElementsByTag(String tagName):通过标签名字来获取
-
getElementsByClass(String className):通过类名来获取
-
getElementsByAttribute(String key):通过属性名字来获取
-
getElementsByAttributeValue(String key, String value):通过指定的属性名字,属性值来获取
-
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)]
本文介绍了如何在SpringBoot项目中利用Jsoup库解析HTML文件,包括获取Document对象、DOM操作和选择器查找元素。还提供了一个实际的代码示例,展示如何解析HTML中的表格数据。
5260

被折叠的 条评论
为什么被折叠?



