2016-05-16 19 views
1

私はこのサイトに掲載されているemojisを解凍しようとしていますhttp://www.i2symbol.com/emoticons/angry私のJSoupライブラリfor java。Jsoupを使用してhtmlページからシンボルを抽出するためにどのようなクエリを使用する必要がありますか?

私はすべての絵文字は、以下のdivのidに含まれているページのHTMLソースに気づいた

次のシンボルのためのコードは

ですヽ(ಠ _& #x0CA0;)ノ ( `0 ´ )/
<div id="symbol_9" data-symbols="&#65340;&#40;&#65344;&#48;&#180;&#41;&#65295;" contenteditable="true">&#65340;&#40;&#65344;&#48;&#180;&#41;&#65295;</div> 
( ╯ ° □ °)╯( ┻ ━ ┻
<div id="symbol_10" data-symbols="&#40;&#9583;&#176;&#9633;&#176;&#65289;&#9583;&#65077;&#32;&#9531;&#9473;&#9531;" contenteditable="true">&#40;&#9583;&#176;&#9633;&#176;&#65289;&#9583;&#65077;&#32;&#9531;&#9473;&#9531;</div> 

\

<div id="symbol_0" data-symbols="&#x30FD;(&#x0CA0;_&#x0CA0;)&#x30CE;" contenteditable="true">&#x30FD;(&#x0CA0;_&#x0CA0;)&#x30CE;</div> 
だから基本的には、シンボルは、HTMLのHEXコードです。 ここで与えられたセレクタ構文を見ました https://jsoup.org/cookbook/extracting-data/selector-syntax しかし、これらのシンボルをHTMLページから抽出するための適切なセレクタクエリを作成することができません。

また、このページから約27個のシンボルが抽出される必要があるため、これらのシンボルを外部テキストファイルに保存するにはどうすればよいですか?

@Daveの助けを借りて、私はこのコードを書くことができました。しかし、これは私はちょうどそれが

<div id="symbol_10" data-symbols="&#40;&#9583;&#176;&#9633;&#176;&#65289;&#9583;&#65077;&#32;&#9531;&#9473;&#9531;" contenteditable="true">&#40;&#9583;&#176;&#9633;&#176;&#65289;&#9583;&#65077;&#32;&#9531;&#9473;&#9531;</div> 

MY Javaコードから

( ╯ ° □ °)╯( ┻ ━ ┻

を抽出どのように使用できるか、コードの行全体を印刷し

import java.io.IOException; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

public class HTMLParserExample3 { 

    public static void main(String[] args) { 

    Document doc; 
    try { 
     doc = Jsoup.connect("http://www.i2symbol.com/emoticons/angry").get(); 

     Elements symbols= doc.select("div[^data-symbols]"); 
     for(Element symbol : symbols) { 
      System.out.println("\nSymbol: " + symbol); 
     } 



    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    } 

} 

答えて

1

HTML5データ属性を使用しているようです(例: "data-symbols")、セレクタドキュメントによれば、データ属性で要素をフィルタリングするために、以下を使用することができます:

[^ attr]:属性名接頭辞を持つ要素。 HTMLあなたは、そのファイルになりたい場合は、ファイルへの書き出しについては

Elements symbols= doc.select("div[^data-symbols]"); 

:[^ DATA-] HTML5データセットを持つ要素は、このことを念頭に置いて

属性見つけ、この打撃を与えますthisのようなものを試すことができます。

更新:

JSoupあなたがhere上場やりたい方法があります。私たちはあなたのケースに、私たちとは、我々が以前に持っていたものに追加することを適用した場合

し、我々が得る:

Elements symbols= doc.select("div[^data-symbols]"); 
for (Element s: symbols) { 
    String symbol= s.attr("data-symbols"); 
    System.out.println(symbol); 
} 
+0

こんにちは、そんなに 輸入にjava.io.IOExceptionを感謝します。 import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; パブリッククラスHTMLParserExample3 { public static void main(String [] args){ \tドキュメントdoc; \t try { \t \t doc = Jsoup.connect( "http://www.i2symbol.com/emoticons/angry").get(); \t \tエレメントシンボル= doc.select( "div [^ data-symbols]"); \t \t(要素記号:記号){ \t \t \t System.out.println( "\ n記号:" +記号); \t \t} \t \t \t \t \t}キャッチ(IOExceptionを電子){ \t \t e.printStackTrace(); \t} } } –

+0

私は、コードを使用すると、私は全体のライン<

(╯°□°)╯︵ ┻━┻
を取得し、私はちょうど値がリストされている最初の記号を使用しただけのシンボル –

+0

、すなわち得ることができるように、あなたは道を提案してくださいすることができ元の質問の例として、正確に何を抽出したいのですか? (あなたの期待している結果) – Dave

関連する問題