Jsoup 是一个Java库,用于解析HTML文件,包括从一个URL、文件或字符串中提取和操作数据。它使用DOM、CSS和类似于jQuery的方法来提取和操作数据。
下面是一个简单的Jsoup使用教程,介绍了一些基本用法。
1. 添加Jsoup依赖
首先,你需要在项目中添加Jsoup的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖:
<dependencies>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
</dependencies>
2. 从URL加载HTML
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupExample {
public static void main(String[] args) throws IOException {
String url = "http://example.com/";
Document doc = Jsoup.connect(url).get();
System.out.println(doc.title());
}
}
这段代码从指定的URL加载HTML,并打印出页面的标题。
3. 解析字符串中的HTML
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupExample {
public static void main(String[] args) {
String html = "<html><head><title>First parse</title></head>"
+ "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
System.out.println(doc.title());
}
}
这段代码解析一个HTML字符串,并打印出标题。
4. 提取元素
使用选择器语法来提取和操作数据。
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupExample {
public static void main(String[] args) throws IOException {
String url = "http://example.com/";
Document doc = Jsoup.connect(url).get();
// 使用CSS选择器提取数据
Elements links = doc.select("a[href]"); // 所有带有href属性的a元素
for(Element link : links) {
System.out.println("Link: " + link.attr("href"));
System.out.println("Text: " + link.text());
}
}
}
5. 操作元素
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupExample {
public static void main(String[] args) {
String html = "<div><p>Lorem ipsum.</p></div>";
Document doc = Jsoup.parse(html);
Element div = doc.select("div").first();
div.append("<p>More text.</p>");
System.out.println(doc.html());
}
}
这段代码在第一个<div>元素中添加了一个新的段落。
6. 清理HTML
Jsoup还可以用来清理HTML,移除不安全的标签,以防止跨站脚本攻击(XSS)。
import org.jsoup.Jsoup;
import org.jsoup.safety.Whitelist;
import org.jsoup.nodes.Document;
public class JsoupExample {
public static void main(String[] args) {
String unsafeHtml = "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>";
String safeHtml = Jsoup.clean(unsafeHtml, Whitelist.basic());
System.out.println(safeHtml);
}
}
以上是Jsoup的一些基本用法。当然,Jsoup的功能远不止这些,你可以查阅官方文档来了解更多高级特性和用法。
评论区