Booking SERP
Разбирайте страницу результатов поиска Booking.com в структурированный JSON с найденными объектами, названием, URL, адресом, расстоянием, ценой, оценкой отзывов, количеством отзывов, звёздным рейтингом и изображением каждого объекта.
Использование API
Добавьте &scraper=booking-serp к запросу Crawling API. URL-кодируйте целевой URL в параметре url.
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://www.booking.com/searchresults.html?ss=Amsterdam' \
--data-urlencode 'scraper=booking-serp' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://www.booking.com/searchresults.html?ss=Amsterdam',
{'scraper': 'booking-serp'}
)
import json
data = json.loads(res['body'])const { CrawlingAPI } = require('crawlbase');
const api = new CrawlingAPI({ token: 'YOUR_TOKEN' });
const res = await api.get(
'https://www.booking.com/searchresults.html?ss=Amsterdam',
{ scraper: 'booking-serp' }
);
const data = JSON.parse(res.body);require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')
res = api.get('https://www.booking.com/searchresults.html?ss=Amsterdam', scraper: 'booking-serp')
data = JSON.parse(res.body)Пример входного URL
URL, передаваемый в параметре url (URL-декодированный для удобства чтения):
https://www.booking.com/searchresults.html?ss=AmsterdamСтруктура ответа
Тело ответа в формате JSON. Типы полей могут быть null, если исходная страница не содержит значения.
Канонический URL результатов поиска.
Направление, по которому выполнялся поиск.
Количество объектов, возвращённых в
properties.Объекты, соответствующие поиску, в порядке, возвращённом Booking.com.
Название объекта.
Канонический URL объекта в Booking.com.
Адрес объекта.
Расстояние от центра направления, если присутствует.
Форматированный текст цены, как показано в объявлении.
Числовое значение цены или null, если его не удаётся разобрать.
Код валюты цены, если присутствует.
Средняя оценка отзывов или null, если отзывов нет.
Количество отзывов или null, если отзывов нет.
Звёздный рейтинг объекта или null, если рейтинг отсутствует.
URL миниатюры, если присутствует.
Пример ответа
{
"searchUrl": "https://www.booking.com/searchresults.html?ss=Amsterdam",
"destination": "Amsterdam",
"propertyCount": 2,
"properties": [
{
"name": "Canal House Amsterdam",
"url": "https://www.booking.com/hotel/nl/canal-house-amsterdam.html",
"address": "Keizersgracht 148, Amsterdam City Center, 1015 CX Amsterdam",
"distance": "0.8 km from centre",
"price": "€ 245",
"priceAmount": 245,
"currency": "EUR",
"reviewScore": 9.1,
"reviewCount": 1284,
"rating": 4,
"image": "https://cf.bstatic.com/xdata/images/hotel/canal-house.jpg"
},
{
"name": "Jordaan Boutique Stay",
"url": "https://www.booking.com/hotel/nl/jordaan-boutique-stay.html",
"address": "Prinsengracht 302, Jordaan, 1016 HX Amsterdam",
"distance": "1.2 km from centre",
"price": "€ 189",
"priceAmount": 189,
"currency": "EUR",
"reviewScore": 8.7,
"reviewCount": 642,
"rating": 3,
"image": null
}
]
}