2016-04-27 15 views
0

ich um streifte, versucht, eine Lösung zu finden, wie eine Zeichenfolge aus einem div greifen (mit ID) innerhalb einer Webseite - genauer gesagt, eine anderen URL. Hier ist der Code, den ich derzeit habe:JSoup - Grabbing URL von div class innerhalb eines div id

Document doc = Jsoup.connect("http://www.wowhead.com/item=" + item_id).get(); 
Elements info = doc.select("div#ic" + item_id); 
System.out.println(info); 

Ein Element id Beispiel sei 10003 Ich versuche, die Bild-URL zu ergreifen, um das Element entspricht, das in dem Innen div, aber es gibt nur so viel:

<div id="ic10003" style="float: left"></div> 

ich auch versucht, die Innen div class Auswahl iconlarge genannt, mit diesem:

Elements info = doc.select("div.iconlarge"); 

Aber es gibt nichts zurück. Ich gehe davon aus, dass es ein Problem mit variablen Typen ist, aber ich bin mir immer noch unsicher. Irgendwelche Vorschläge? mit Jsoup

+0

Können Sie das konkretisieren, was ist Ihre erwartete Ausgabe? – soorapadman

+0

Ich habe versucht, eine Bild-URL zu erfassen, die in einem div angegeben wurde. Erwartete Ausgabe war dies, wenn die Verwendung ist 10003: obwohl http://wow.zamimg.com/images/wow/icons/large/inv_gauntlets_05.jpg nyname00 mein Problem gelöst. Nochmals, Entschuldigung für die späten Antworten. –

Antwort

0

wird dies schwierig sein. Wenn Sie drucken Ihre doc Sie werden sehen, dass es ein Element ist:

<div id="ic10003" style="float: left"></div> 

ohne Inhalt. Ein paar Zeilen zwar nach unten, gibt es einen Skript ist, das Hinzufügen des Bildes zu diesem div zu sein scheint:

$WH.ge('ic10003').appendChild(Icon.create('inv_gauntlets_05', 2, null, 0, 1)); 
// and a few more lines 

Jetzt Jsoup nur in der Lage ist, den roh HTML zu analysieren, ist es kein Skripts ausführen oder Wenden Sie Stylesheets auf Elemente an.

Nicht sicher, ob es genau das, was Sie suchen, aber einen Blick auf den meta Tags der Webseite nehmen:

<meta property="og:site_name" content="Wowhead"> 
<meta property="og:title" content="Black Mageweave Gloves"> 
<meta property="og:image" content="//wow.zamimg.com/images/wow/icons/large/inv_gauntlets_05.jpg"> 
<meta property="og:url" content="http://www.wowhead.com/item=10003/black-mageweave-gloves"> 
... 

Das Element mit dem og:imageproperty Wert scheint zu sein, was du bist Auf der Suche nach.

Sie können es mit so etwas wie das folgende Verfahren lesen (beachten Sie, dass select funktioniert nur für body Elemente):

private String imgUrl(Document doc) { 
    for (Element m : doc.getElementsByTag("meta")) { 
     if ("og:image".equals(m.attr("property"))) 
      return m.attr("content"); 
    } 
    return null; 
} 
+0

Sorry für die späte Antwort - ich habe keine E-Mail über alle Antworten auf die Post habe ich bekommen. Vielen Dank für die Hilfe! Ich hätte zuerst die Meta-Tags betrachten sollen, bevor ich die eigentlichen divs durchgehen würde. –

Verwandte Themen