2016-05-18 14 views
3

Jsoupを使用してWebページからデータを抽出する必要があります。Jsoupを使用してWebページからタグなしのテキストを取得

私はタグに含まれているデータを簡単に抽出しましたが、まだタグ付けされていないデータが必要です。

これは、HTMLソースの例です:

<a id="aId" href="aLink" style="aStyle"> 
    <span id="spanId1"> 
     <b>Caldan Therapeutics</b> 
     Announces Key Appointments And A Collaboration With 
     <b>Sygnature Discovery</b> 
    </span> 
    <span id="spanId2" style="spanStyle2"> 
     5/17/2016 
    </span> 
</a> 

私はすでに<b>タグに含まれるデータだけでなく、日付を抽出しますが、私が今したいことは、文Announces Key Appointments And A Collaboration Withを抽出することであるしています。

ご覧のとおり、この文にはタグはありません。

私はそれを抽出するために何ができますか?

私は既に研究を行っており、すべてのタグを削除する方法がわかりました。

ありがとうございました!

+0

この投稿をフォローしてください。http://stackoverflow.com/questions/12943734/jsoup-strip-all-formatting-and-link-tags-keep-text-only – shankarsh15

+0

私はすでにそれを見ていますhtmlタグを取り除くそれは私が望むものではありません。私が望むのは、タグなしの文章のみを抽出することです。「重要な予定と協力を発表する」 – user1885868

答えて

4

私はその特定の必要性のためにanwserを見つけました、そして、私は将来同じ問題に直面するかもしれない誰とでもそれを共有したいと思います。

あなたができることは、機能ownText()を使用することです。要素の子タグからテキストを除外します。この例では

public static void main(String[] args) throws Exception { 
    Document doc = Jsoup.connect("http://source-url").get(); 
    Elements spanTags = doc.getElementsByTag("span"); 
    for (Element spanTag : spanTags) { 
     String text = spanTag.ownText(); 
     System.out.println(text); 
    } 
} 
+1

答えとしてマークしてください。回答とマーキングは、StackOverflowでは悪いとはみなされません。 ;) – Sufian

+0

@Sufianは、私に思い出させるためにありがとう! – user1885868

2

ます。また、それは次のコードを使用して行うことができますが、それは、文字列としてテキストを返す「\ nを」とのパラグラフを交換し、あなたがテキストを検出することはできませんでしょうスタイル(太字、イタリック体など)。

あなたはプレーンテキストのみを取得したい場合は、これは本当に便利です。

Element aElem = doc.getElementById("spanId1"); 
String yourText = aElem.wholeText(); 

あなたのケースであなたは要素のIDとしてaIdを使用する場合は、spanId2の内容を取得しますし、あなたのテキストのどの部分が日付であるかを簡単に伝えることはできません。

関連する問題