Ator do Apify para extrair dados sobre hotéis do booking.com.
O Booking.com fornece vários tipos de acomodações em todo o mundo. A interface do usuário
é bastante amigável para um usuário humano, no entanto, para obter os dados em um formato de máquina processável
não é uma tarefa simples, pois não há API oficial do Booking.com. É aqui que este novo apify
O ator é útil.
Este ator extrai dados do hotel do booking.com, pode extrair diretamente de
A página da lista de hotéis ou navegue até a página de detalhes para obter informações mais detalhadas.
Os resultados podem ser solicitados por quaisquer critérios suportados pelo Booking.com.
Como Booking.com permite apenas 1000 resultados de pesquisa, caso você precise baixar mais,
Você precisará utilizar o atributo useFilters
para dizer ao rastreador para envolver todos os critérios
páginas filtradas. Isso superará o limite, mas aumentará significativamente o tempo de rastreamento.
A entrada é um objeto JSON com as seguintes propriedades:
{
"search" : SEARCH_QUERY ,
"destType" : DESTINATION_TYPE ,
"simple" : EXTRACT_FROM_LIST ,
"useFilters" : USE_CRITERIA_FILTERING ,
"minScore" : MINIMUM_HOTEL_RATING ,
"maxPages" : MAXIMUM_PAGINATION_PAGES ,
"concurrency" : MAXIMUM_CONCURRENT_PAGES ,
"checkIn" : CHECK_IN_DATE ,
"checkOut" : CHECK_OUT_DATE ,
"rooms" : NUMBER_OF_ROOMS ,
"adults" : NUMBER_OF_ADULTS ,
"children" : NUMBER_OF_CHILDREN ,
"currency" : PREFERRED_CURRENCY ,
"language" : PREFERRED_LANGUAGE ,
"sortBy" : BOOKING_SORT_TYPE ,
"propertyType" : PROPERTY_TYPE ,
"minMaxPrice" : MIN_MAX_PRICE_RANGE ,
"proxyConfig" : APIFY_PROXY_CONFIG
}
search
é o único atributo necessário. Esta é a consulta de pesquisa de booking.com.destType
Especifica o tipo de pesquisa, os valores disponíveis são city
e region
.simple
define se os dados devem ser extraídos apenas da página da lista, o padrão é false
.useFilters
se o rastreador deve utilizar filtros de critérios para superar o limite para 1000 resultados.minScore
especifica a classificação mínima permitida pelo hotel a ser incluída nos resultados, o padrão é 8.4
.maxPages
define o número máximo de páginas de paginação a serem rastreadas.checkIn
-in de check-in no formato mm-dd-yyyy.checkOut
check-out no formato mm-dd-yyyy.rooms
Número de salas a serem configuradas para a pesquisa.adults
Número de adultos a serem definidos para a pesquisa.children
Número de crianças a serem definidas para a busca.currency
a ser definido no site.language
a ser definido no site.propertyType
do tipo de propriedade para pesquisar, ele usará filtros, portanto não pode ser combinado com useFilters
. [
"none" ,
"Hotels" ,
"Apartments" ,
"Hostels" ,
"Guest houses" ,
"Homestays" ,
"Bed and breakfasts" ,
"Holiday homes" ,
"Boats" ,
"Villas" ,
"Motels" ,
"Holiday parks" ,
"Campsites" ,
"Luxury tents"
]
minMaxPrice
Min-Max, ele usará filtros e não pode ser combinado com useFilters
. [
"none" ,
"0-50" ,
"50-100" ,
"100-150" ,
"150-200" ,
"200+"
]
proxyConfig
Define a configuração do proxy APIFY, ele deve respeitar este formato: "proxyConfig" : {
"useApifyProxy" : true ,
"apifyProxyGroups" : [
"RESIDENTIAL" ,
...
]
}
sortBy
define um atributo de hotel pelo qual os resultados serão solicitados, deve ser um dos seguintes. [
"bayesian_review_score" , // Rating
"popularity" , // Popularity
"price" , // Price
"review_score_and_price" , // Rating and price
"class" , // Stars
"class_asc" , // Stars ascending
"distance_from_landmark" // Distance from city centre
]
Em vez de um atributo de entrada search
, também é possível iniciar o rastreador com uma variedade de startUrls
.
Nesse caso, todos os outros atributos que modificam os URLs ainda serão aplicados, portanto, é sugerido a
Use URLs simples e defina todas as outras opções usando atributos de entrada em vez de deixá -los no URL para
Evite o conflito do parâmetro de URL.
Caso o Starturl seja uma página de detalhes do hotel, ele será raspado. Caso seja uma página de lista de hotéis, o resultado
dependerá do atributo simple
. Se for true
, a página será raspada, caso contrário, todos os links para
As páginas detalhadas serão adicionadas à fila e raspadas depois.
O atributo startUrls
deve criar uma variedade de URLs da seguinte maneira:
{
"startUrls" : [
"https://www.booking.com/hotel/fr/ariane-montparnasse.en-gb.html" ,
"https://www.booking.com/hotel/fr/heliosopera.en-gb.html" ,
"https://www.booking.com/hotel/fr/ritz-paris-paris.en-gb.html" ,
...
] ,
"simple" : false ,
"minScore" : 8.4 ,
...
}
No caso de usar o atributo de entrada simple
, um exemplo de saída para um único hotel pode se parecer com o seguinte:
{
"url" : "https://www.booking.com/hotel/cz/elia-ky-kra-snohorska-c-apartments-prague.en-gb.html" ,
"name" : "Centrum Apartments Old Town" ,
"rating" : 10 ,
"reviews" : 7 ,
"stars" : 4 ,
"price" : 86 ,
"currency" : "€" ,
"roomType" : "Deluxe Three-Bedroom Apartment with Terrace" ,
"persons" : 4 ,
"address" : "Prague 01, Prague" ,
"location" : {
"lat" : "14.4199419021606" ,
"lng" : "50.0903216331068"
}
}
Caso contrário, a saída será muito mais abrangente, especialmente a matriz rooms
, que no entanto
Contém dados somente se os atributos de entrada checkIn
e checkOut
estiverem definidos.
{
"url" : "https://www.booking.com/hotel/cz/elia-ky-kra-snohorska-c-apartments-prague.en-gb.html" ,
"name" : "Centrum Apartments Old Town" ,
"type" : "Apartment" ,
"description" : "Situated in the centre of Prague in a historical building near the Pařížská street, 500 metres from the Old Town Square, the Pragueaparts Old town E offers..." ,
"stars" : "4" ,
"rating" : 10 ,
"reviews" : 7 ,
"breakfast" : null ,
"checkIn" : "15:00" ,
"checkOut" : "00:00" ,
"location" : {
"lat" : "50.0903216" ,
"lng" : "14.4199419"
} ,
"address" : {
"full" : "Elišky Krásnohorské 2, Prague, 11000, Czech Republic" ,
"postalCode" : "11000" ,
"street" : "Elišky Krásnohorské 2" ,
"country" : "Czech Republic" ,
"region" : ""
} ,
"image" : "https://t-ec.bstatic.com/images/hotel/max1024x768/183/183313960.jpg" ,
"rooms" : [
{
"available" : true ,
"roomType" : "Deluxe Three-Bedroom Apartment with Terrace" ,
"bedType" : " Bedroom 1: 1 extra-large double bed Bedroom 2: 2 single beds Bedroom 3: 3 single beds and 1 sofa bed " ,
"persons" : 1 ,
"price" : 85.54 ,
"currency" : "€" ,
"features" : [
"80 m²" ,
"City view" ,
"Terrace" ,
"Flat-screen TV" ,
"Air conditioning" ,
"Private bathroom" ,
...
] ,
"conditions" : [
"Non-refundable"
]
} ,
...
]
}
O ator não funcionará sem proxy, ou seja, se você tentar executá -lo sem definir um proxy, ele falhará com uma mensagem explicando exatamente isso.
Booking.com exibirá apenas 1000 resultados, se você precisar contornar essa limitação,
Você pode utilizar o atributo de entrada do uso useFilters
. No entanto, nesse caso, não será possível
Para usar quaisquer filtros limitadores nos URLs iniciantes, porque o raspador os substituirá.
Se você precisar obter dados sobre salas específicas, o rastreador precisa ser iniciado com checkIn
e
Os atributos de entrada checkOut
(Booking.com mostram apenas informações de quarto para datas específicas).