使用该依赖呢是因为想获取网页的数据
public static void main(String[] args) throws IOException {
Document document = Jsoup.connect("url").get();
System.out.println(document.text());
//System.out.println(document.replace("<!--",""));
String title = document.select("title").text();
System.out.println(title);
//例如<div class="h-[125]" id="link"> 我想去class可以使用getElementsByClass获取
Elements mb = document.getElementsByClass("h-[125]");
//可以当前该标签的条数
System.out.println(mb.size());
for (int i = 0; i < mb.size(); i++) {
//例如 <div class="" id="link-index-26"> 我想去获取id 可以使用getElementById去获取
Element elementById = document.getElementById("link-index-" + i);
String toString = elementById.toString();
String replaceLeft = toString.replace("<!--", "");
String replaceRight = replaceLeft.replace("-->", "");
elementById = Jsoup.parse(replaceRight, "", Parser.xmlParser());
//System.out.println("elementById.text()================>"+elementById.text());
// 这里的意思是获取标签 比如该标签下只有a标签可以使用getElementsByTag来获取 <a href="/md5/e90bb9b7983f4d2c217ee29daa9ae068"/></a>
Elements element2 = elementById.getElementsByTag("a");
for(Element element3 : element2) {
Elements content = element3.getElementsByClass("relative top-[-1] pl-4 grow overflow-hidden");
for(Element element4 : content) {
Elements content1 = element4.getElementsByClass("truncate text-xs text-gray-500");
Elements content2 = element4.getElementsByClass("truncate text-xl font-bold");
Elements content3 = element4.getElementsByClass("truncate text-sm");
Elements content4 = element4.getElementsByClass("truncate italic");
System.out.println(content1.text());
System.out.println(content2.text());
System.out.println(content3.text());
System.out.println(content4.text());
System.out.println("======================================");
}
}
}
}
- Jsoup封装并实现了DOM里面常用的元素遍历方法:
根据id查找元素: getElementById(String id)
根据标签查找元素: getElementsByTag(String tag)
根据class查找元素: getElementsByClass(String className)
根据属性查找元素: getElementsByAttribute(String key)
兄弟遍历方法: siblingElements(), firstElementSibling(), lastElementSibling(); nextElementSibling(), previousElementSibling()
层级之间遍历: parent(), children(), child(int index)
这些方法会返回Element或者Elements节点对象,这些对象可以使用下面的方法获取一些属性:
attr(String key): 获取某个属性值
attributes(): 获取节点的所有属性
id(): 获取节点的id
className(): 获取当前节点的class名称
classNames(): 获取当前节点的所有class名称
text(): 获取当前节点的textNode内容
html(): 获取当前节点的 inner HTML
outerHtml(): 获取当前节点的 outer HTML
data(): 获取当前节点的内容,用于script或者style标签等
tag(): 获取标签
tagName(): 获取当前节点的标签名称
有了这些API,就像JQuery一样很便利的操作DOM。