2013-12-16 8 views
5

私はちょうどこのsiteでjsoupを使い始めました。何か変なことが起こっています。私はjsoupの選択のために、次のを思い付いたJsoup selectがすべてのノードを返していない

<div class="Table1_A1 grow clear-fix"> 
    <div class="grd-col grd-col-1a"> … </div> 
    <div class="grd-col grd-col-2b"> 
     <p> 
     <span class="T1"> 
       <a href="...."> TITLE TEXT IS HERE 
       </a> 
      </span> 
     </p> 
    </div> 
    ... 
</div> 

このHTML構造を見てみると::

私が欲しいのは、次のHTMLを見つけることができます列のタイトル、下のテキストを選択することですここで

try { 
    Document htmlDocument = Jsoup.connect(url).get(); 
    Elements as = htmlDocument.select("div.grow > div.grd-col-2b > p > span.T1 > a"); 
    System.out.println(as.html()); 

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

事です。それだけで「できるだけ早く」のタイトルまで出力しますが、そこに負荷がその後だ、と彼らは単にアップしません。だから私は不思議に思っています。jsoup ".select()"には返されるノードに制限がありますか?私はどのようにこの周りに来るのか分からない、どんな助けも非常に感謝しています。

+0

クエリにはいくつの要素がありますか?多分、HTMLコンポーネントのいくつかはjavascriptによって読み込まれますか?そのような場合は、静的ページを入力として受け取るため、JSOUPには表示されません。 –

+0

jsからコンテンツが読み込まれません。 – Chayemor

答えて

6

Jsoupには選択に制限はありませんが、要求のボディサイズには1MBというデフォルトの制限があります。これで問題は解決します:

Document doc = Jsoup.connect(url).timeout(60000).maxBodySize(10*1024*1024).get(); 
+0

GENIUS!非常に感謝しています! – Chayemor

関連する問題