2016-04-27 3 views
0

Я бродил вокруг, пытаясь найти решение о том, как захватить строку из div (с идентификатором) на веб-странице - точнее, другой URL-адрес. Вот код, который я в настоящее время:JSoup - захват URL-адреса из div-класса в 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); 

Пример Идентификатор элемента будет 10003. Я пытаюсь захватить URL изображения, соответствующий пункту, которая во внутреннем-DIV, но он возвращает только это:

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

Я также попытался выбрать класс внутренней Div под названием iconlarge, с этим:

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

Но это ничего не возвращает. Я предполагаю, что это проблема с переменным типом, но я все еще не уверен. Какие-либо предложения?

+0

может вы более конкретно, что ваш ожидаемый результат? – soorapadman

+0

Я пытался захватить URL-адрес изображения, который был указан внутри div. Ожидаемый результат был, если использовать 10003: http://wow.zamimg.com/images/wow/icons/large/inv_gauntlets_05.jpg nyname00 решил мою проблему. Опять же, жаль поздних ответов. –

ответ

0

Это будет сложно с использованием Jsoup. При печати doc вы увидите, что есть элемент:

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

без содержания. Несколько строк вниз, хотя, есть сценарий, который, кажется, добавив изображение в этой DIV:

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

Теперь, Jsoup только в состоянии разобрать сырой HTML, он не выполняет никаких скриптов или применять стили к элементам.

Не уверен, что это именно то, что вы ищете, но взять взгляд на meta Теги сайта:

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

элемент со значением по og:imageproperty, кажется, что вы находясь в поиске.

Вы можете прочитать его, используя что-то вроде следующего метода (отметим, что select работает только для body элементов):

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

Извините за поздний ответ - я не получил письмо о каких-либо ответах на сообщение, которое я сделал. Огромное спасибо за помощь! Я должен был сначала взглянуть на метатеги, прежде чем пройти через настоящие div. –

Смежные вопросы