2015-07-07 1 views
0

Я делаю программу java, которая царапает страницу Amazon. Когда кто-то вводит поисковый запрос и появляется итоговая страница результатов, моя программа берет все результирующие цены. Я уже знаю, как найти эти цены и распечатать их на консоли. Например, при условии, что пользователь искал термин «ложку», я ввести следующий код:JSoup как хранить элементы в массиве?

Elements prices = doc.select("span.s-price"); 
    System.out.println("Prices: " + prices); 

Затем я получить следующий вывод:

Prices: <span class="a-size-base a-color-price s-price a-text-bold">CDN$ 7.99</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 4.24</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 12.00</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 9.99</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 22.99</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 10.00</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 5.94</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 4.99</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 4.79</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 5.99</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 15.48</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 4.07</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 5.88</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 12.99</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 6.71</span> 
<span class="a-size-base a-color-price s-price a-text-bold">CDN$ 11.99</span> 

Однако, я не знаю, как тогда взять эти строки и сохранить их в массиве? Я бы более конкретно хотел бы получить значения «CDN $ double», хотя я думаю, что знаю, как я могу справиться с этой проблемой. Как сохранить эти строки в виде массива?

Вот код из части исходного кода amazon.ca, что меня интересует в (длинные и грязные, мои извинения):

<div id="center"> 


<div id="atfResults" class="a-row s-result-list-parent-container"><ul id="s-results-list-atf" class="s-result-list s-col-1 s-col-ws-1 s-result-list-hgrid s-height-equalized s-list-view s-text-condensed"><li id="result_0" data-asin="B00X08P338" class="s-result-item"><div class="s-item-container"><div class="a-fixed-left-grid"><div class="a-fixed-left-grid-inner" style="padding-left:160px"><div class="a-fixed-left-grid-col a-col-left" style="width:160px;margin-left:-160px;_margin-left:-80px;float:left;"><div class="a-row"><div class="a-column a-span12 a-text-center"><a class="a-link-normal a-text-normal" href="http://www.amazon.ca/HIC-Harold-Cocktail-Stainless-12-Inch/dp/B00X08P338/ref=sr_1_1?ie=UTF8&amp;qid=1436286484&amp;sr=8-1&amp;keywords=spoon"><img alt="Product Details" src="http://ecx.images-amazon.com/images/I/21TcgyjDH%2BL._AA160_.jpg" onload="viewCompleteImageLoaded(this, new Date().getTime(), 16, false);" class="s-access-image cfMarker" height="160" width="160"></a></div></div></div><div class="a-fixed-left-grid-col a-col-right" style="padding-left:2%;*width:97.6%;float:left;"><div class="a-row a-spacing-small"><a class="a-link-normal s-access-detail-page a-text-normal" title="HIC Harold Import Bar Cocktail Mixing Spoon, 18/8 Stainless Steel, 12-Inch" href="http://www.amazon.ca/HIC-Harold-Cocktail-Stainless-12-Inch/dp/B00X08P338/ref=sr_1_1?ie=UTF8&amp;qid=1436286484&amp;sr=8-1&amp;keywords=spoon"><h2 class="a-size-medium a-color-null s-inline s-access-title a-text-normal">HIC Harold Import Bar Cocktail Mixing <strong>Spoon</strong>, 18/8 Stainless Steel, 12-Inch</h2></a><div class="a-row a-spacing-none"><span class="a-size-small a-color-secondary">by </span><span class="a-size-small a-color-secondary">HIC Harold Import Co.</span></div></div><div class="a-row"><div class="a-column a-span7"><div class="a-row a-spacing-none"><a class="a-link-normal a-text-normal" href="http://www.amazon.ca/HIC-Harold-Cocktail-Stainless-12-Inch/dp/B00X08P338/ref=sr_1_1?ie=UTF8&amp;qid=1436286484&amp;sr=8-1&amp;keywords=spoon"><span class="a-size-base a-color-price s-price a-text-bold">CDN$ 7.99</span></a> 

ответ

0

Не совсем чистое решение, но оно должно работать. В основном элементы - это просто элемент списка.

0

Вы можете сделать что-то подобное.

Elements elements = d.select("span.s-price"); 
String[] prices = new String[elements.size()]; 
for (int i = 0; i < elements.size(); i++) { 
    prices[i] = elements.get(i).text(); 
}