2017-03-01 11 views
0

テキストをWebサイトから取得するには、javaを使用しています。このウェブサイトでは、<p><h1>などのタグは使用していません。私が探しているテキストはすべてクラスの小道具()の下にあります。私はjsoupの使用を理解します。クラスを選択できますが、テキストを取得する方法はわかりません。タグなしのときにjavaを使用してHTMLからテキストを収集

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> 
+1

[Jsoupで孤立したテキストを取得する方法](http://stackoverflow.com/questions/41915562/how-to-get-orphaned-text-with-jsoup) – ProgrammersBlock

答えて

0

あなたが同じテキスト()メソッドを使用することができます。

は、ここでは、テキストの例です。

doc.getElementsByClass("cls-1").forEach(ele -> { 

    System.out.println(ele.text()); 
}); 

ちょうどあなたはgetElementsByclass(<classname>)を使用して、各ノードからテキストを取得するための要素を反復処理する必要があります。

+0

こんにちは。単にどのようなタイプのデータ "ele.text()"が好奇妙なのでしょうか?私はデータで物事をしたい場合。 –

+0

@DeanAllen 'text()'の戻り値の型はString型のデータになります。ドキュメント 'public String text()'を確認することができます。 –

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ですべてのテキストノードには、この正規表現を適用します。

関連する問題