Парсер, как достать динамические данные с страницы.
Пишу для себя небольшое расширение для хрома.
Есть вот такая страница: 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); |
Часовой пояс GMT +3, время: 11:30. |