Към съдържанието
N1
Интеграции · държавен портал без API

Търсене на съдебни дела в портал без публично API

Клиент: sattar.kz Категория: Интеграции Стек: PHP, cURL, DOMDocument/DOMXPath, емулиране на JSF сесия Срок: 1–2 седмици
Проблем

В sattar.kz беше нужно програмно търсене на съдебни дела на контрагенти в държавен съдебен портал — порталът няма публично API, само остарял уеб интерфейс на JSF/RichFaces.

Ограничения

Порталът е изграден на legacy Java/JSF стек без REST: служебните идентификатори на формата и версткатa се менят между версиите на портала, а автентикацията разчита изцяло на състоянието на сесията.

Какво направих
  • Емулиране на браузърна сесия: cookie jar плюс обработка на JSF ViewState и Ajax partial-response
  • Вход и търсене на дела по страна по делото с филтри по съд и година
  • DOMXPath парсер на резултатите с каскадни селектори и fallback стратегии при промяна на версткатa
  • Дедупликация на резултатите и връщане на структуриран JSON вместо суров HTML
  • Конфигурацията изнесена в константи за бързо преконфигуриране без промяна на логиката за парсене
Архитектура
Съдебен портал (JSF/RichFaces) Емулиране на сесия XPath парсер JSON API
Резултат

Търсенето на дела по контрагент стана програмна JSON заявка вместо ръчно посещение на портала — устойчиво на дребни промени във версткатa благодарение на fallback парсенето.

Какво може да се преизползва
Модел за емулиране на legacy JSF портал без REST API XPath парсене с graceful fallback при промяна на версткатa Дедупликация на резултати от скрейпинг