Добавить в парсер SE::Yandex по запросам из выдачи еще данные: Кол. директа над поиском Кол. директа под поиском Яндекс-видео - на каком месте если есть Яндекс маркет - на каком месте если есть Колдунщики
Сейчас это можно решить с помощью шаблонизатора. Например: Спойлер: Пример шаблона Код: [% top = 0; bottom = 0, videoPos = 0, marketPos = 0, koldArr = []; FOREACH item IN p1.ads; top = top + (item.position == 'top' ? 1 : 0); bottom = bottom + (item.position == 'bottom' ? 1 : 0); END; FOREACH item IN p1.serp; IF item.link.match('yandex.ru/video/'); videoPos = loop.count; END; IF item.link.match('/market.yandex.ru/'); marketPos = loop.count; END; END; IF p1.pages.0.data.match('<a[^>]+object-footer__link[^>]+href="[^"]+wikipedia'); koldArr.push('Википедия'); END; IF p1.pages.0.data.match('class="Collections Collections_list"'); koldArr.push('Коллекции'); END; query _ ":\n"; 'Кол. директа над поиском - ' _ top _ ', под поиском - ' _ bottom _ "\n"; 'Позиции Яндекс видео - ' _ videoPos _ ', Яндекс маркет - ' _ marketPos _ "\n"; 'Колдунщики: ' _ (koldArr.size == 0 ? 'нет' : koldArr.join(', ')) _ "\n" %] Спойлер: Результат Добавляя признаки других колдунщиков, вы можете по аналогии сделать определение всех необходимых видов.