Интеграции · държавен портал без 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
Дедупликация на резултати от скрейпинг