@Anonymous12344321

Как парсить динамические страницы с использованием php?

Есть интернет магазин, который на определенной странице выводит товары(название, описание, цена и т.д). Если бы это происходило статически(т.е при загрузке определенной страницы php сразу бы извлекал данные из БД и выводил их на страницу), то с парсинном бы проблем не возникло. Но проблема в том, что вывод товаров происходит динамически, с использованием ajax(т.е php возвращает шаблон, а товары подгружает JS с использованием AJAX). Т.е при запросе в качестве ответа я получаю html разметку, которая не содержит товаров(оно и понятно, товары просто не загрузились AJAX'ом). Существует ли возможность решить эту проблему при помощи php?(К сведению, в качестве библиотеки для парсинга используется crawler)
  • Вопрос задан
  • 247 просмотров
Решения вопроса 1
@d-sem
Самое универсальное решение это поднять на nodejs сервис на базе puppeteer https://github.com/puppeteer/puppeteer и переложить на него всю ответственность по парсингу динамических страниц. А в него уже передавать запросы.

С точки зрения php теоретически можно попытаться разобраться в хитросплетениях API запросов, если на целевом сайте вдруг совсем не делали защиту парсинга. Можно подключить любой компонент для headless браузеров.

Но с точки зрения кпд и качества лучше всего сделать сервис на инструментах которые изначально для этого заточены. Связка nodejs + puppeteer с отдачей данных по api (http или очереди - rabbitmq в rpc) это очень мощное и в то же время простое решение. Хотя бы просто потому что puppeteer это оболочка над google chrome, которую очень удобно дебажить в консоли браузера.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽