Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Спарсить несколько страниц (Google Chrome Extension) (https://javascript.ru/forum/css-html/66900-sparsit-neskolko-stranic-google-chrome-extension.html)

libertyswift 16.01.2017 20:04

Спарсить несколько страниц (Google Chrome Extension)
 
Как спарсить список нескольких страниц?
Есть часть кода которая парсит ссылки с сайта. как спарсить несколько страниц? Т.е есть массив и перебрать его ?

var b1 =  $.ajax('http://__________________');
var b2 =  $.ajax('http://__________________');
var b3 =  $.ajax('http://__________________');

var arr = [b1, b2, b3];




(function($){
function ajaxStart(){
  $('#progress').show();
}
function ajaxStop(){
  $('#progress').hide();
}
function parserGo(){
  ajaxStart();
  var b = $.ajax('http://__________________');
  b.done(function (d) {
    analysisSite(d);
    ajaxStop();
  });
  b.fail(function (e, g, f) {
    alert('Epic Fail');
    ajaxStop();
  })
}
function analysisSite(data){
  var res = '';
  $(data).find('a').each(function(){
    res+=$(this).text()+'=>'+$(this).attr('href')+'';
  })
  $('#resultbox').html(res);
}
$(function(){
  $('#progress').hide();
  $('#starter').click(parserGo);
});
})(jQuery);

ksa 17.01.2017 09:21

Цитата:

Сообщение от libertyswift
как спарсить несколько страниц? Т.е есть массив и перебрать его ?

Можно и так. :yes:
А можно все собрать в одну строку/переменную и работать с ней...

libertyswift 17.01.2017 18:36

Не подскажите как это реализовать?

libertyswift 19.01.2017 20:05

Вот к такому виду удалось все привести. И все бы хорошо. Но во застопорился на одном моменте. Как можно вывести результаты в разные дивы? Сейчас все падает в один. Возможно ли это?
$(function(){
  var  b1 = $.ajax('https:________');
  var  b2 = $.ajax('https:________');
  var  b3 = $.ajax('https:________');
    var arr = [b1, b2, b3];
    arr.forEach(function(entry) {
        entry.done(function (d) {
                var res = '';
                $(d).find('a').each(function(){
                res+=$(this).text();
                document.getElementById('box').innerHTML += res;
          });
          });
        
         
    });
 });
}

ksa 20.01.2017 08:23

Цитата:

Сообщение от libertyswift
Возможно ли это?

Да. :yes:
Как вариант, можно создавать новые ДИВы... Записывать им нужный контент... Потом вставлять в твой box.
Либо писать в уже существующие на странице...

libertyswift 20.01.2017 09:35

Как я могу обратится к (первому, второму и тд) результату функции?
Чтобы потом эти результаты раскидать в нужные мне div?

ksa 20.01.2017 10:43

Цитата:

Сообщение от libertyswift
Как я могу обратится к (первому, второму и тд) результату функции?

Начать нужно с документации по методу forEach()... ;)

Ну и конечно знать какой из вариантов ты выбрал по работе с теми ДИВами...
Например варианту с добавлением ДИВов вообще не важно какой он по счету. :)


Часовой пояс GMT +3, время: 08:58.