Пишу для себя небольшое расширение для хрома.
Есть вот такая страница:
http://steamcommunity.com/market/lis...tle-Scarred%29
Нужно вывести среднюю цену на предмет. Скрипт работает и корректно выводит нужные данные.
Проблема в том, что на странице отображаются только первые 10 позиций с пагинацией, динамически подгружающей следующие 10 предметов, а выборку необходимо сделать из 100 предметов. Эмулирование нажатия на span с кнопкой пагинации методом click не работает. Может быть возможно как-нибудь подгрузить сразу несколько динамических блоков с ценами в столбик, а затем спарсить разом?
Код парсера:
(считывает цены предметов, суммирует, выводит среднее.)
(function($){
function parserGo(){
var b = $.ajax('http://steamcommunity.com/market/listings/730/AWP%20%7C%20Asiimov%20%28Battle-Scarred%29');
b.done(function (d){
var res = [];
var page;
$('#resultbox').html();
for(page=0; page<1; page++){
res[page] = analysisSite(d);
}
page = 0;
var val = 0;
var sum = 0.00;
var count = 0;
while(page < res.length){
while(val < res[page].length){
$('#resultbox').append(res[page][val] + "<br/>");
sum += parseFloat(res[page][val])*10;
val++;
}
count += res[page].length;
page++;
}
var result = (sum/10)/count;
alert(sum/10);
alert(count);
alert(result.toFixed(2));
});
}
function analysisSite(data){
var res = [];
var i = 0;
var num = $(this).text().replace(/[\$\sA-Za-z]/g, "");
$(data).find('span.market_listing_price.market_listing_price_with_fee').each(function(){
num = $(this).text().replace(/[\$\sA-Za-z\!]/g, "");
if(num != "" && num != null){
res[i] = num;
i++;
}
})
return res;
$('#searchResults_btn_next').click();
}
$(function(){
$('#progress').hide();
$('#starter').click(parserGo);
});
})(jQuery);