Планируя поездки, большинство путешественников обращаются к Google, чтобы найти отели. Платформа показывает списки отелей, цены, отзывы и наличие мест — все в одном месте. Для предприятий, аналитиков или туристических платформ эти данные — золото. Скрапинг Google Hotels может помочь вам отслеживать тенденции ценообразования, следить за конкурентами и анализировать рыночные возможности в туристической отрасли.
В этом руководстве мы покажем вам, как выполнить парсинг Google Hotels с помощью Python и Crawlbase Crawling API. С помощью этого метода вы можете собирать данные об отелях в масштабе, не беспокоясь о блокировках, CAPTCHA или запретах IP. Мы рассмотрим все, от настройки вашей среды до написания полноценного скрапера для списков отелей и отдельных страниц отелей.
Google Hotels — одна из самых используемых платформ для поиска и сравнения списков отелей. Она показывает цены, местоположения, отзывы и варианты бронирования — все в одном месте. Скрапинг Google Hotels позволяет собирать данные для мониторинга цен, анализа конкурентов и понимания рынка путешествий.
Вот несколько распространенных вариантов использования Google Hotels:
Отслеживать цены на отели: Посмотрите, как цены меняются со временем в зависимости от местоположения и сезона.
Сравнить конкурентов: Посмотрите рейтинг, цены и доступность других отелей.
Исследования путешествий: Создавайте инструменты, показывающие лучшие предложения отелей, схемы путешествий или популярность направлений.
Данные для машинного обучения: Используйте исторические данные для прогнозирования спроса на отели или ценовых тенденций.
Сбор этих данных вручную занимает много времени, но с помощью веб-скрапинга Python вы можете автоматизировать этот процесс и получить структурированные данные об отелях в кратчайшие сроки.
Ключевые данные для извлечения из Google Hotels
При скрапинге Google Hotels важно знать, какие точки данных имеют наибольшее значение. Эти данные полезны для мониторинга цен, конкурентного анализа и создания туристических инструментов.
На изображении ниже показаны некоторые наиболее ценные поля, которые вы можете извлечь:
Crawlbase Crawling API для Google Hotels Скрапинг
Скрапинг Google Hotels может быть сложным, поскольку сайт использует JavaScript для загрузки списков и подробностей отелей. Традиционные методы скрапинга часто не позволяют получить полный HTML-контент. Вот где Crawlbase Crawling API приходит дюйма
Crawlbase Crawling API упрощает сбор данных Google Hotels за счет обработки рендеринга JavaScript, ротации IP-адресов для избежания блокировок, быстрого и надежного извлечения данных и настраиваемых параметров запросов для имитации реальных пользователей.
Crawlbase Библиотека Python
Чтобы сделать это еще проще, Crawlbase обеспечивает Библиотека Python взаимодействовать с Crawling API, Все, что вам нужно, это Crawlbase токен доступа, который вы получаете после регистрации (мы предлагаем 1,000 бесплатных запросов без необходимости использования кредитной карты).
Вот простой пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
от база сканирования Импортировать CrawlingAPI
# Инициализация Crawlbase API с вашим токеном доступа crawling_api = CrawlingAPI({ токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА' })
защитуmake_crawlbase_request(URL): ответ = crawling_api.get(url)
if ответ["заголовки"]['статус_ПК'] == '200': html_content = ответ['тело'].decode('utf-8') возвращают html_контент еще: Распечатать(f"Не удалось загрузить страницу. Код статуса: {ответ["заголовки"]['статус_ПК']}") возвращаютНичто
С этой настройкой вы будете готовы начать извлекать списки и детали отелей из Google Hotels. В следующем разделе мы настроим среду Python для начала скрапинга.
Настройка среды Python
Перед тем, как скрейпить Google Hotels, вам нужно подготовить среду Python. Это включает установку самого Python и нескольких необходимых библиотек для отправки запросов и извлечения данных.
🐍 Установить Python
Если вы еще не установили Python, загрузите и установите последнюю версию с сайта официальный сайт Python. Во время установки обязательно поставьте галочку в поле «Добавить Python в PATH« — это позволит вам запустить Python из командной строки.
Чтобы проверить, установлен ли Python, выполните в терминале или командной строке следующее:
1
python --version
Вы должны увидеть номер установленной версии.
✅ Установите необходимые библиотеки
Для копирования Google Hotels мы будем использовать:
carwlbase – для отправки HTTP-запросов используйте Crawlbase Crawling API.
beautifulsoup4 – для анализа и извлечения контента из HTML.
Установите их с помощью pip:
1 2
запросы на установку pip Пип установить BeautifulSoup4
📝 Создайте свой файл Python
Создайте новые файлы, в которых вы будете писать код для скрапинга, например:
Или просто создайте их вручную в предпочитаемом вами редакторе кода.
🔑 Получите свой Crawlbase Токены
Если вы еще этого не сделали, зарегистрируйтесь по адресу Crawlbase и получите свой API токен. Этот токен вам понадобится для аутентификации ваших запросов на скрапинг.
Примечание: Crawlbase предоставляет два типа токенов. Обычный токен для статических сайтов и токен JS для сайтов, отрисованных с помощью JS. Для скрапинга Google Hotels нам нужен токен JS. Смотрите документации больше.
Теперь ваша настройка завершена. Далее мы проверим HTML-структуру Google Hotels и начнем писать скрапер.
Извлечение результатов поиска Google Hotels
В этом разделе мы извлечем данные об отелях из Google Hotels с помощью Python, BeautifulSoup и Crawlbase Crawling API. Вы узнаете, как извлекать данные об отеле, обрабатывать пагинацию и сохранять данные в файле JSON.
🧩 Проверка HTML на наличие селекторов
Во-первых, открыть Google отели в браузере выполните поиск по местоположению (например, «Нью-Йорк») и просмотрите страницу.
Вот некоторые ключевые классы CSS, используемые в списках отелей:
Карточка отеля:div.BcKagd
Название отеля: h2.BgYkof
Цена: span.qQOQpe.prxS3d
Рейтинг: span.KFi5wf.lA0BZ
Мы будем использовать эти селекторы в нашем скрапере.
🧪 Написание скрейпера для списков отелей
Теперь давайте напишем функцию для извлечения данных об отеле, используя Crawlbase и BeautifulSoup.
отели = суп.найти_все("див", класс_="БкКагд") для Гостиница in отели: имя = hotel.find("h2", класс_="БгЫкоф") цена = отель.найти("охватывать", класс_="qQOQpe prxS3d") рейтинг = hotel.find("охватывать", класс_="KFi5wf lA0BZ") ссылка = hotel.find(«А», класс_="ПВООКсе")
hotel_data.прикрепить({ "название": имя.текст if имя еще"N / A", "цена": цена.текст if цена еще"N / A", "рейтинг": рейтинг.текст if рейтинг еще"N / A", "связь": "https://www.google.com" + ссылка[href] if ссылке. еще"N / A" })
возвращают hotel_data
🔁 Обработка пагинации
Google Hotels загружает больше результатов на нескольких страницах. Использование Crawlbase Crawling API, мы можем имитировать нажатие кнопок с помощью css_click_selector параметр. Мы также можем использовать ajax_wait параметр, чтобы убедиться, что содержимое полностью загружено после щелчка. Это гарантирует, что Crawling API возвращает полный HTML-код следующей страницы после нажатия кнопки и отображения содержимого.
Давайте обновим наш make_crawlbase_request функция для включения этих параметров и добавления обработки исключений для большей надежности:
в то время как количество_страниц < макс_страниц: html = ''
if количество_страниц == 0: # Для 1-й страницы html = make_crawlbase_request(url) еще: # Для следующих страниц html = make_crawlbase_request(url, 'кнопка[jsname="OCpkoe"]')
Теперь, когда мы извлекли данные об отелях из результатов поиска, следующим шагом станет извлечение информации с отдельных страниц отелей.
Извлечение индивидуальных данных об отеле
Получив список ссылок на отели из результатов поиска, мы можем посетить страницу каждого отеля, чтобы извлечь больше информации, например, полный адрес, номер телефона и дополнительные характеристики отеля. Это дает нам более глубокое понимание объекта и полезно для анализа конкурентов, отслеживания цен или создания приложений для путешествий.
🔍 Проверка HTML на предмет сведений об отеле
Откройте ссылку на отель в своем браузере и используйте инструмент проверки браузера, чтобы найти селекторы для важных полей:
Название отеля: Найдено в <h1> тег с классом FNkAEc.
Цена: Расположен в <span> тег с классами qQOQpe prxS3d.
Оценка: Извлечено из <span> с классами KFi5wf lA0BZ.
Количество отзывов: Найдено в <span> с классами jdzyld XLC8M, рядом с рейтингом.
Тип отеля: Найдено в <span> с классом CFH2De.
Адрес и контакты: Расположен внутри div с классом K4nuhf, где:
spans[0] дает адрес
spans[2] дает контактную информацию
Примечание: Эти селекторы могут меняться в зависимости от местоположения и макета. Всегда проверяйте их в своем браузере перед скрапингом.
🧰 Написание деталей Скребок
Используя выявленные селекторы CSS, давайте создадим скрапер Google Hotel Details с помощью BeautifulSoup.
Скрапинг Google Hotels помогает собирать ценные данные, такие как названия отелей, цены, отзывы, рейтинги, адреса и контактная информация. Эти данные ценны для исследования путешествий, создания инструментов сравнения отелей или мониторинга рыночных тенденций.
Посмотрите на график Crawlbase Crawling API упрощает сбор динамического контента, избегая при этом блоков или CAPTCHA. В сочетании с BeautifulSoup для парсинга и JSON для сохранения данных вы можете создать простой, но мощный скрапер на Python.
При сборе данных об отелях всегда следуйте этическим и юридическим нормам, чтобы обеспечить безопасность и соответствие ваших проектов нормативным требованиям.
Хотите парсить больше платформ? Ознакомьтесь с нашими другими руководствами по парсингу:
Если у вас есть вопросы, идеи или нужна помощь, наша команда здесь для вас. Спасибо за чтение и счастливого скрапинга!
FAQ
В. Законно ли собирать данные Google Hotels?
Сбор публичных данных с таких сайтов, как Google Hotels, может быть законным, если это делается этично и в соответствии с условиями обслуживания сайта. Всегда избегайте сбора персональных данных и убедитесь, что вы соблюдаете местные законы о конфиденциальности данных и правила сбора данных.
В. Зачем использовать Crawlbase Crawling API для копирования Google Hotels?
Контент Google Hotels загружается динамически с помощью JavaScript, который может быть трудно скопировать с помощью обычных инструментов. Crawlbase Crawling API загружает полный HTML-код, как настоящий браузер, и обрабатывает JavaScript, пагинацию, CAPTCHA и ротацию IP-адресов, делая парсинг более быстрым, простым и надежным.
В. Какие данные я могу извлечь из Google Hotels?
Вы можете извлечь название отеля, цену, адрес, рейтинг, количество отзывов, тип отеля и контактные данные. Эта информация полезна для аналитики отелей, мониторинга цен, маркетинговых исследований и приложений, связанных с путешествиями.
Хассан Рехан
Хассан Рехан — инженер-программист в Crawlbase с более чем 5-летним опытом создания масштабируемых веб-приложений, специализируясь на Java, Python и JavaScript. Он имеет большой опыт в веб-скрапинге и разработал несколько первоклассных расширений Chrome. Как ведущий технический писатель в Crawlbase, он создает технический контент и проводит вебинары. Ранее он сотрудничал с ведущими компаниями, включая Mentor Graphics (Siemens), Etisalat UAE и Systems Limited.