2013-12-16 13 views
5

Ich habe gerade mit jsoup mit dieser site begonnen und etwas Seltsames passiert.Jsoup select gibt nicht alle Knoten zurück

Alles, was ich will, ist, den Text in der Spalte Titel wählen, die Sie mit den folgenden HTML finden:

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

in dieser HTML-Struktur sucht ich mit den folgenden für jsoup Auswahl kam:

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(); 
} 

Hier ist die Sache: Es druckt nur bis Titel "so schnell wie möglich", aber es gibt Lasten danach, und sie kommen einfach nicht auf. Also frage ich mich, hat jsoup ".select()" ein Limit für die Knoten, die es zurückgibt? Ich habe keine Ahnung, wie ich das schaffen soll, jede Hilfe wird sehr geschätzt.

+0

Wie viele Elemente gibt es in Ihrer Abfrage? Vielleicht werden einige der HTML-Komponenten von Javascript geladen? Wenn dies der Fall ist, werden sie nicht in JSOUP angezeigt, da sie eine statische Seite als Eingabe benötigt. –

+0

Kein Inhalt wird über js geladen. – Chayemor

Antwort

6

Jsoup hat keine Einschränkungen für selects, aber es gibt eine Standardbeschränkung für die Körpergröße der Anfrage, die 1 MB beträgt. Dies sollte das Problem beheben:

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

GENIUS! Viel sehr geschätzt! – Chayemor

Verwandte Themen