Jsoup从Html文件中提取正文内容

如题所述

Jsoup从Html文件中提取正文内容
示例代码:
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "/example.com/");

Element content = doc.getElementById("content");
Elements links = content.getElementsByTag("a");
for (Element link : links) {
String linkHref = link.attr("href");
String linkText = link.text();
}
jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的操作方法来取出和操作数据。
jsoup的主要功能如下:
1. 从一个URL,文件或字符串中解析HTML;
2.使用DOM或CSS选择器来查找、取出数据;
3. 可操作HTML元素、属性、文本;
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-27
下面是一个例子, H1部分就是你需要的正文部分
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class HTMLParser{

public static void main(String args[]) {

// Parse HTML String using JSoup library
String HTMLSTring = "<!DOCTYPE html>"
+ "<html>"
+ "<head>"
+ "<title>JSoup Example</title>"
+ "</head>"
+ "<body>"
+ "|[b]HelloWorld[/b]"
+ ""
+ "</body>"
+ "</html>";

Document html = Jsoup.parse(HTMLSTring);
String title = html.title();
String h1 = html.body().text();

System.out.println("Input HTML String to JSoup :" + HTMLSTring);
System.out.println("After parsing, Title : " + title);
System.out.println("Afte parsing, Body : " + h1);

}

}追问

这种方法是可以提取正文,但是,正文里会有一些不是正文的信息参杂进去,怎么能保证只取正文,而没有其他信息。

追答

你有需要处理的那个HTMl吗?其实可以通过html.body中的一些设置函数来取得对应的信息。或者只采用某个标签里面的信息。

本回答被网友采纳
第2个回答  2018-02-28
用正则表达式吧
相似回答