没有标签时,使用java从HTML收集文本

时间:2017-03-01 12:28:39

标签: java html jsoup

我正在使用java从网站获取文本。本网站不使用<p><h1>等标签。我正在寻找的所有文字都在类道具()下。我理解使用jsoup我可以选择课程,但后来我不知道如何获取文本。

以下是文字示例:

div style="margin-bottom:8px;">Repulse Bay</div>
<div><div><b>Gross Area:</b> 5,051 sq.ft. (@ HK$ 67 p.s.f.)</div>
<div><b>Saleable Area:</b> 3,871 sq.ft. (@ HK$ 88 p.s.f.)</div></div>
<div><b>Bedrooms:</b> 3 (2-Ensuite)</div>
<div><b>Bathrooms:</b> 3.5</div>

2 个答案:

答案 0 :(得分:0)

你可以使用相同的text()方法。

select

只需要使用doc.getElementsByClass( "cls-1" ).forEach( ele -> { System.out.println( ele.text() ); } ); 然后遍历元素以从每个节点获取文本。

答案 1 :(得分:0)

您可以在不使用jsoup的情况下使用正则表达式。

String content = "<div><b>Saleable Area:</b> 3,871 sq.ft. (@ HK$ 88 p.s.f.)</div></div><div><b>Bedrooms:</b> 3 (2-Ensuite)</div>";

Pattern p = Pattern.compile("\\(([^\\)]*)\\)");
Matcher m = p.matcher(content);
while(m.find()) {
    System.out.println(m.group(1));
}
// Output
//@ HK$ 88 p.s.f.
//2-Ensuite

或者将此正则表达式应用于jsoup的所有文本节点。