Оптимальный алгоритм парсинга для BAS

Поддержка
  • @Denis_krsk Спасибо за мысль, я писал выше

    Нет, sitemap никак не получить. Сайт закрытый. Ну и еще есть детали типа отсутствия ссылок в браузере (не IFRAME а JS), приходится сохранять каждую страницу с идентификатором, но я уже просто решил не грузить кучей подробностей. В общем нужен именно алгоритм обхода сайта.

  • Делаем ассоциированный массив
    VAR_LINKS = {}
    

    Делаем While цикл

    while(true){
        VAR_TEMP_LINKS = []
        if(VAR_CYCLE_INDEX == 0)
        {
            //Тут собираем ссылки первый раз
        }else
        {
                 //Проверка есть ли список для этой иттерации
                try{
                 var a = VAR_LINKS[VAR_CYCLE_INDEX]
                  }catch(e){
                _break()
                }
                  Foreach(VAR_LINKS[VAR_CYCLE_INDEX])
                         //Парсим ссылки с каждой страницы в массив TEMP_LINKS
     
        }
            //Ложим в ассоц массив наш массив
             if(VAR_TEMP_LINKS.length  > 0) 
             VAR_LINKS[VAR_CYCLE_INDEX + 1 ] = VAR_TEMP_LINKS
    
    }
    

    За первый проход помещаем в массив спаршенных ссылок

    VAR_LINKS = {
    1:["ссылка1", "ссылка2"]
    }
    

    Следующий проход

    VAR_LINKS = {
    1:["ссылка1", "ссылка2"];
    2:["ссылка3", "ссылка4"]
    }
    

    При этом в общем цикле еще делаем добавление в общий список и ресурс, а так же проверку перед переходом по ссылке, что бы много раз не переходить по тем же ссылкам.
    Так же желательно поменять переменный cycle index
    П.С.
    Мог ошибиться в где то в синтаксисе с асоц массивами, лень искать скрипт в котором этом реализовано, но факт того что это рабочее - подтверждаю на личном опыте. Делал такой "ПАУК" для одной соц сети, что собирать друзей друзей * N раз

  • @DrPrime Огромнейшее спасибо за ответ! Буду завтра разбирать

  • 0 Votes
    7 Posts
    251 Views
  • 0 Votes
    3 Posts
    558 Views
  • 0 Votes
    4 Posts
    584 Views
  • 0 Votes
    12 Posts
    1863 Views
  • 0 Votes
    19 Posts
    3067 Views