Jsoup介绍
简介
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可
通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据
Jsoup的主要功能
- 从一个URL,文件或字符串中解析HTML
- 使用DOM或CSS选择器来查找、取出数据
- 可操作HTML元素、属性、文本
- 注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。
引入Jsoup
<dependency>
<!-- jsoup HTML parser library @ https://jsoup.org/ -->
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.2</version>
</dependency>
api文档
jsoup官网
使用jsoup
package com.chenhong;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.jsoup.nodes.TextNode;
import org.jsoup.select.Elements;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class JsoupTest {
public static void main(String[] args) throws Exception {
String fileName = "C:/Users/11826/Desktop/法律数据库/法律全文/法律全文-原版html/161431.html";
File file = new File(fileName);
Document parse = Jsoup.parse(file, "UTF-8");
InputStream fileInputStream = new FileInputStream(file);
Document streamParse = Jsoup.parse(fileInputStream,"UTF-8","");
Document strParse = Jsoup.parse("<html></body><span class=\"c_tiao\"> 第一百零一条</span> </body> </html>");
Element head = parse.head();
Element body = parse.body();
Elements fulltext = body.getElementsByClass("fulltext");
for (Element element : fulltext) {
List<String> textList = new ArrayList<>();
getTextNode(element, textList);
}
}
private static void getTextNode(Element el, List<String> strList) {
List<Node> nodes = el.childNodes();
for (Node node : nodes) {
if (node instanceof Element) {
getTextNode((Element) node, strList);
continue;
}
if (node instanceof TextNode) {
TextNode textNode = (TextNode) node;
String nodeText = textNode.text();
String text = replaceFirst(nodeText);
boolean equals = text.equals("");
if (!equals) {
strList.add(text);
System.out.println(text);
}
}
}
}
private static String replaceFirst(String str) {
return str.replaceFirst("[\\u00a0*|\\t*| *| *| *|//s*]*", "");
}
}