Jsoup基本是用来解析html的
package com.peko.demo;
import com.peko.demo.utils.HttpUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.IOException;
/**
* Jsoup 解析 html
*/
public class Test02 {
/**
* 元素获取法
* @throws IOException
*/
@Test
public void test01() throws IOException {
//chuanzhi.txt的内容是某一个网站的html
Document document = Jsoup.parse(new File("D:/my_project/chuanzhi.txt"),"UTF-8");
// System.out.println(document);
//根据 id 获取元素 getElementById
Element element = document.getElementById("people");
System.out.println(element.text());
//根据标签获取元素
Elements elements = document.getElementsByTag("title");
Element titleElement = elements.get(0);
System.out.println(titleElement.text());
//根据 class 获取元素
Element s_name = document.getElementsByClass("s_name").last();
System.out.println(s_name.text());
//根据属性获取元素
Element adc = document.getElementsByAttribute("adc").last();
System.out.println(adc.text());
}
/**
* 选择器获取法
* @throws IOException
*/
@Test
public void test03() throws IOException {
Document doc= Jsoup.parse(new File("D:/my_project/chuanzhi.txt"),"UTF-8");
//根据标签名获取元素
Elements spans = doc.select("span");
for(Element span : spans){
System.out.println(span.text());
}
//根据id获取元素
String text = doc.select("#id").text();
System.out.println(text);
//根据class获取元素
String text1 = doc.select(".class").text();
System.out.println(text1);
//根据属性获取元素
String text2 = doc.select("[attribute]").text();
System.out.println(text2);
//根据属性值获取元素
String text3 = doc.select("[class]=s_name").text();
System.out.println(text3);
}
/**
* 选择器高级用法
* @throws IOException
*/
@Test
public void test04() throws IOException {
Document doc= Jsoup.parse(new File("D:/my_project/chuanzhi.txt"),"UTF-8");
//根据标签名+id获取元素
String text = doc.select("li#test").text(); //标签为li,id为test
System.out.println(text);
//根据标签名+class
String text1 = doc.select("li.class_a").text();
System.out.println(text1);
//根据标签名+元素名
String text2 = doc.select("span[abc]").text();
System.out.println(text2);
//任意组合
String text3 = doc.select("span[abc].class").text();
System.out.println(text3);
//查找某个元素下的直接子元素
String text4 = doc.select(".city_con > ul > li").text(); //ul下有两个子元素,li和ul这里只获取到了li
//查找某个元素下的子元素
String text5 = doc.select(".city_con li").text();
System.out.println(text5);
//查找某个元素下的所有直接子元素
String text6 = doc.select("city_con > *").text(); //ul下有两个子元素,li和ul,这里都获取到了
System.out.println(text6);
}
}