Top.Mail.Ru

Как собрать данные об отелях с Booking.com с помощью Python и Selenium

Как собрать данные об отелях с Booking.com с помощью Python и Selenium

 

Как собрать данные об отелях с Booking.com с помощью Python и Selenium

В условиях высокой конкуренции в туристической сфере актуальной задачей становится автоматизация сбора данных об отелях: ценах, рейтингах, условиях размещения и другой информации. В этой статье мы расскажем, как с помощью Python и библиотеки Selenium создать скрипт для сбора информации об отелях с сайта Booking.com.

Для начала убедитесь, что у вас установлены следующие библиотеки:

pip install selenium webdriver-manager

Также потребуется установленный браузер Google Chrome и соответствующий драйвер, который webdriver-manager подгрузит автоматически.

Скрипт делает следующее:

  1. Открывает страницу поиска Booking.com по городу (в нашем случае — Мадрид).

  2. Прокручивает страницу вниз, чтобы подгрузились все карточки отелей.

  3. Извлекает ключевую информацию по каждому отелю:

    • Название

    • Цена

    • Рейтинг

    • Адрес

    • Расстояние до центра

    • Тип номера

    • Условия отмены

    • URL изображения

    • Ссылка на страницу отеля

  4. Сохраняет данные в формате JSON.

Скрипт использует headless-режим браузера, что позволяет запускать его на сервере без отображения интерфейса:

options.add_argument("--headless=new")

Прокрутка страницы

Поскольку Booking.com подгружает данные динамически, важно прокрутить страницу вниз:

def scroll_page():
    ...

Этот блок имитирует поведение пользователя и помогает подгрузить больше отелей.

Извлечение информации

Информация об отеле извлекается по селекторам:

hotel.find_element(By.CSS_SELECTOR, 'div[data-testid="title"]').text

Каждое поле оборачивается в try/except, чтобы избежать сбоев при отсутствии данных.


Пример результата

После выполнения скрипта будет создан файл booking_hotels.json, содержащий примерно такую структуру:

{
  "name": "Hotel Madrid",
  "price": "₽9 500",
  "rating": "8.4",
  "address": "Центр города, Мадрид",
  "distance": "500 м от центра",
  "room_type": "Двухместный номер",
  "cancellation": "Бесплатная отмена",
  "image_url": "https://...",
  "hotel_url": "https://www.booking.com/..."
}

 

Использование Selenium для парсинга сайтов, таких как Booking.com, — мощный инструмент для сбора рыночной информации, анализа цен и автоматизации бизнес-задач. Но важно помнить, что такие сайты могут иметь защиту от ботов, и при большом объёме запросов рекомендуется действовать аккуратно и уважительно по отношению к правилам использования ресурса.


📁 Скачать пример скрипта на GitHub

 

Автор:

56

Читайте также

0 комментариев

Бот: Здравствуйте! Я чат-бот веб-разработчика. Чем могу помочь в создании или доработке вашего сайта?