Jsoup怎样从Html文件中提取正文内容?

Jsoup怎样从Html文件中提取正文内容?,第1张

Jsoup从Html文件中提取正文内容\x0d\x0a示例代码:\x0d\x0aFileinput=newFile("/tmp/input.html")\x0d\x0aDocumentdoc=Jsoup.parse(input,"UTF-8","/example.com/")\x0d\x0a\x0d\x0aElementcontent=doc.getElementById("content")\x0d\x0aElementslinks=content.getElementsByTag("a")\x0d\x0afor(Elementlink:links){\x0d\x0aStringlinkHref=link.attr("href")\x0d\x0aStringlinkText=link.text()\x0d\x0a}\x0d\x0ajsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的 *** 咐燃作方法来取出和 *** 作数据。\x0d\x0ajsoup的主要功能如下念毕:\x0d\x0a1.从一个URL,文件或字符串中解析HTML;\x0d\x0a2.使用DOM或CSS选择器来查找、取出数据衡高虚;\x0d\x0a3.可 *** 作HTML元素、属性、文本;

/**

* 这个文件实现了:将指定目录下缓段的所有htm和html文件的<title>标签的值,替换成文件名(不含后缀)。

*/

import java.io.File

import java.io.FileOutputStream

import java.io.IOException

import java.io.OutputStreamWriter

import org.jsoup.Jsoup

import org.jsoup.nodes.Document

import org.jsoup.nodes.Element

public class Rename {

public static void main(String[] args) {

// 默认文件夹路径

String path = "C:\\report"

if(args != null &&args.length >0){

path = args[0]

}

try {

renameHTMLTitle(path)

} catch (IOException e) {

e.printStackTrace()

}

}

public static void renameHTMLTitle(String dir) throws IOException {

File f = new File(dir)

if (f.isDirectory()) {

File fs[] = f.listFiles()

for (File s : fs) {

String title = s.getName().replaceAll(".htm", "").replaceAll(".html", "")

if(s.getName().contains(".htm") || s.getName().contains(".html")){

Document doc = Jsoup.parse(s, "gb2312")

Element titleEl = doc.select("title").first()

titleEl.html(title)

/*

* Jsoup只是解析,不能保存修改前哪兆,所以要在这里保存修改。慧租

*/

FileOutputStream fos = new FileOutputStream(s, false)

OutputStreamWriter osw = new OutputStreamWriter(fos, "gb2312")

osw.write(doc.html())

osw.close()

}

}

}

}

}

public void parse(){

String htmlStr = "<table id=kbtable >"

+ "<tr>"

+ "<td width=123>"

+ "<div id=12>这里是要获取的数据1</div>"

+ "<兆银div id=13>这里是要获取的数据2</div>"

+ "</td>"

+ "<td width=123>"

+ "<div id=12>这里是要获取的数据3</div>"

+ "<div id=13>这里是要获取的数据4</div>"

+ "</td>"

+ "</隐盯tr>"

+ "</table>"

Document doc = Jsoup.parse(htmlStr)

// 根据id获取table

Element table = doc.getElementById("kbtable")

// 使用选择族携宴器选择该table内所有的<tr><tr/>

Elements trs = table.select("tr")

//遍历该表格内的所有的<tr><tr/>

for (int i = 0i <trs.size()++i) {

// 获取一个tr

Element tr = trs.get(i)

// 获取该行的所有td节点

Elements tds = tr.select("td")

// 选择某一个td节点

for (int j = 0j <tds.size()++j) {

Element td = tds.get(j)

// 获取td节点的所有div

Elements divs = td.select("div")

// 选择一个div

for (int k = 0k <divs.size()k++) {

Element div = divs.get(k)

//获取文本信息

String text = div.text()

//输出到控制台

System.out.println(text)

}

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12244265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存