Услуги

  • Сайты

  • Контент

  • Продвижение

  • Битрикс24

  • Приложения

Все услуги Оплата
Все услуги Оплата

Поиск

  • Разработка интернет-магазина под ключ
  • Разработка сайтов
  • Разработка леднигов
  • Разработка на битрикс24
  • Разработка на Вордпресс

Кейс: Парсинг Booking.com в реальном времени на туристическом сайте

Иногда возникают задачи, когда нам необходимо получить в значительных объёмах данные со страниц сайта. И почти всегда при этом хочется чтобы этот процесс был максимально автоматизированным и данные можно было бы без проблем перенести, к примеру, на другой сайт. В этом случае нам нужно написать PHP-парсер – специфическую программу для извлечения или сбора любой открытой информации с веб-сайтов.

С подобным заказом к нам обратились представители одной туристической фирмы. Ей требовалось получить данные с крупнейшего туристического агрегатора – парсить сайт booking.com в реальном времени.

Проведя анализ поставленной задачи, наша команда специалистов приступила к разработке.

Парсер на PHP шаг за шагом

Технологии

Составить правильный запрос и обработать данные нам помогла библиотека cURL. Эта библиотека является более продвинутой альтернативой функции PHP – file_get_contents. В отличие от нее, cURL позволяет работать с куками, с заголовками, позволяет отправлять формы и переходить по редиректам.

Своеобразной особенностью парсинга веб-сайтов является то, что работа происходит с исходным HTML-кодом страницы, но не данными (текстом, изображениями и т.д.), которые видны пользователю на сайте.

Прототипирование

Исходя из этого, большая часть нашей работы сводится к правильному выделению нужных нам элементов “атакуемого” сайта. Так мы плавно переходим к прототипированию – процессу применения различных концепций, архитектурных и/или технологических решений в разработке парсера.

Тестирование

Когда предыдущий этап пройден, время тестировать парсер booking.com! Для этого применяем методику тест кейсов – совокупности шагов, конкретных условий и параметров, необходимых для проверки работоспособности нашего парсера. Подобным образом мы проверяем корректность получаемых данных и нагрузку кода парсера на сайт, подвергаемый “атаке”, и нашего ресурса.

Парсим сайт Booking.com

После реализации технической части в отношение парсера, дело остаётся за малым – получить данные с сайта booking.com.

Запускаем парсер и ждём, пока инструмент “соберёт” все необходимые нам данные. В данном случае – комнаты и их наличие в определённый период, а также все варианты цен на этот период. После этого мы экспортируем полученные данные в базу данных сайта нашего туристического сервиса и наслаждаемся полученным результатом.

Посмотрите скриншоты и сравните – цены на сайте нашего клиента совпадают с booking.com. И по-другому быть не может, ведь в момент поиска скрипт на “нашем” сайте делает парсит нужные отели на “Букинге” и получает оттуда все цены на доступные номера!

01

/ 03

Что в итоге?

Парсер за считанные минуты обойдёт тысячи страниц “атакуемого” ресурса. Он аккуратно и безошибочно отберёт нужное и отбросит лишнее, эффективно упаковав конечные данные в необходимом виде. Этими данными потом можно распорядиться так, как будет угодно. Например, как было в нашем случае, экспортировав информацию о номерах отелей всего мира в единую базу данных.

Хотите обсудить проект?

Оставьте ваш номер телефона и наш менеджер свяжется с вами в ближайшее время

Над кейсом работали