Как парсить динамические страницы с использованием php?
Есть интернет магазин, который на определенной странице выводит товары(название, описание, цена и т.д). Если бы это происходило статически(т.е при загрузке определенной страницы php сразу бы извлекал данные из БД и выводил их на страницу), то с парсинном бы проблем не возникло. Но проблема в том, что вывод товаров происходит динамически, с использованием ajax(т.е php возвращает шаблон, а товары подгружает JS с использованием AJAX). Т.е при запросе в качестве ответа я получаю html разметку, которая не содержит товаров(оно и понятно, товары просто не загрузились AJAX'ом). Существует ли возможность решить эту проблему при помощи php?(К сведению, в качестве библиотеки для парсинга используется crawler)
Самое универсальное решение это поднять на nodejs сервис на базе puppeteer https://github.com/puppeteer/puppeteer и переложить на него всю ответственность по парсингу динамических страниц. А в него уже передавать запросы.
С точки зрения php теоретически можно попытаться разобраться в хитросплетениях API запросов, если на целевом сайте вдруг совсем не делали защиту парсинга. Можно подключить любой компонент для headless браузеров.
Но с точки зрения кпд и качества лучше всего сделать сервис на инструментах которые изначально для этого заточены. Связка nodejs + puppeteer с отдачей данных по api (http или очереди - rabbitmq в rpc) это очень мощное и в то же время простое решение. Хотя бы просто потому что puppeteer это оболочка над google chrome, которую очень удобно дебажить в консоли браузера.