【问题标题】:How to extract body contents from html file with more than one html tags with jsoup如何使用jsoup从具有多个html标签的html文件中提取正文内容
【发布时间】:2016-11-27 14:57:06
【问题描述】:

我需要用jsoup解析一个包含多个html标签的html文件。

我将文档拆分为许多 html 元素,并且可以提取一些标签,例如标题

Document doc = Jsoup.parse(file, "UTF-8");
Elements el = doc.getElementsByTag("html");
for (Element e : el) {
   writer = new PrintWriter(output);
   writer.println(e.select("title"));
   writer.println(e.select("body"));
   writer.close();
}

输出

<title>titletext</title>

但它似乎忽略了每个元素中body标签的存在。

使用Document.body() 只是将正文标签的所有内容吐到一起。

由于我无法从每个元素中获取一个文档来使用body(),如何分别从每个元素中提取正文标签?

【问题讨论】:

  • 具有多个 html 标签的文件不是有效的 HTML 文件。它是连接的几个 HTML 页面(大概),或者如果它们是嵌套的,则更糟。为什么要处理这些无效文件?有没有办法让输入成为几个有效的 HTML 文件?否则,自己拆分文件,然后分别分析每个HTML文档。

标签: java html jsoup


【解决方案1】:

假设你有这样一个文件:

<!DOCTYPE html>
<html>
<head>
<title>Page Title 1</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph on page 1.</p>
</body>
</html> 

<html>
<head>
<title>Page Title 2</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph on page 2.</p>
</body>
</html> 

<html>
<head>
<title>Page Title 3</title>
</head>
<body>
<h1>This is a Heading</h1>
<p>This is a paragraph on page 3.</p>
</body>
</html> 

您可以在每个 html 部分 (

猜你喜欢
  • 1970-01-01
  • 2019-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-30
相关资源
最近更新 更多