Найти тему
Oracle APEX

Уход самонаводящегося спайдера от ложных целей

Продолжение заметок "Самонаводящийся спайдер к проблеме автоматического скачивания файла с переменным Web адресом" и "Проблема автоматического скачивания файла с переменным Web адресом".

Для нужд слежения за файлом на удаленном сайте в условиях переменчивости адреса этого файла мы создали робот. Робот состоит из двух частей - спайдера (паук) и скаута (разведчик). При размещении задания на слежение спайдер однократно пробегает по сайту и находит заданный файл и его родительскую страницу. Затем скаут по данным спайдера периодически следит за родительской страницей наблюдаемого файла с целью своевременного обнаружения его изменившегося адреса.

В первой версии спайдер мог захватить лишь адрес, точно соответствующий указанному в задании. Это оказалось очень жестким ограничением и во второй версии было предложено решение о захвате цели на основе пороговой обработки меры близости найденных на родительской странице адресов и заданного адреса. Это позволило включить спайдер в систему на ходу без ручного согласования уже изменившихся адресов. Спайдер показал почти 100%-ную статистику захватов цели, но обнаружились некоторые экзотические ситуации, потребовавшие дальнейшего усовершенствования.

  1. На сайте, более того, на одной родительской странице ошибочно располагались две или более ссылки на интересующий файл, причем первая из них была просроченной.
  2. На сайте, более того, на одной родительской странице корректно располагались две ссылки на два интересующих нас файла, учитываемых и наблюдаемых раздельно.

Поскольку самонаводящийся спайдер захватывал первую цель, для которой превышался порог близости, то в обоих названных случаях - продолжая наши аналогии с самонаводящейся ракетой - он "захватывал ложную цель".

Фото: Airbus Military
Airbus испытал ложные тепловые цели на транспортнике A400M
https://lenta.ru/news/2013/06/24/a400m/
Фото: Airbus Military Airbus испытал ложные тепловые цели на транспортнике A400M https://lenta.ru/news/2013/06/24/a400m/

В связи с этим в спайдер была добавлена еще одна фаза обработки до принятия решения о захвате. Вместо решения о захвате цели при первом же превышении порога спайдер стал принимать промежуточное решение: "нахожусь на родительской странице". Или, возвращаясь к ракете, "в поле зрения вероятные цели".

После этого спайдер не останавливается, а продолжает просмотр текущей страницы, записывая меры близости всех ссылок с превышением порога близости. Т.е. он предварительно захватывает все цели в поле зрения. Затем он, подобно ракете, выделяет самую яркую цель и выполняет окончательный захват цели, уходя от ложных целей.