2014-02-07 5 views
0

Я разбираю html-страницу с помощью jsoup. Вот что я сделал до сих пор:Как получить текст в jsoup ссылке?

doc = Jsoup.connect("http://www.marketimyilmazlar.com/index.php?route=product/category&path=141_77").get(); 

Element page_clips = doc.getElementById("page_clips"); 

Element page_clip_content = page_clips.getElementById("content"); 
Elements allProductPricesOnPage = page_clip_content.getElementsByClass("price"); 

сейчас, когда я пишу:

allProductNamesOnPage.get(0); 

возвращает мне следующее:

<div class="name"> 
<a href="http://www.marketimyilmazlar.com/index.php? 
route=product/product&amp;path=141_77&amp;product_id=4309"> here is the text</a> 
</div> 

Что я хочу сделать это, я хочу чтобы получить часть «здесь - текст» этого объекта. Может ли кто-нибудь помочь мне с ним?

Благодаря

ответ

1

Вы можете итерацию над Elements у вас есть собрали и печатать их цены один на один:

Elements allProductPricesOnPage = page_clip_content 
       .getElementsByClass("price"); 
for (Element el : allProductPricesOnPage) { 
    System.out.println(el.text()); 
} 

дает,

19.99 TL KDV Dahil 
9.99 TL KDV Dahil 
14.99 TL KDV Dahil 

Что это такое, вы выбираете Elements, который реализует Iterator (см. Javadoc here), что дает вам доступ к отдельным объектам Element в вашей коллекции.

Каждый из этих Element объектов, которые повторяются в вашем HTML, имеет соответствующую информацию, которую вы хотите извлечь.

1

Если вы хотите извлечь только текст, вы можете вызвать метод text():

String text = allProductNamesOnPage.get(0).text(); 

Этот метод получает текст элемента и его объединенных детей. Так что если вы хотите, чтобы убедиться, что вы только извлечение текста из элемента, вызовите text() на первый элемент детского:

String text = allProductNamesOnPage.get(0).child(0).text(); 

Смотрите здесь: http://jsoup.org/cookbook/extracting-data/attributes-text-html

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