Booking.com에서 호텔에 대한 데이터를 추출하는 Apify Actor.
Booking.com은 전 세계의 다양한 유형의 숙박 시설을 제공합니다. 사용자 인터페이스
인간 사용자에게는 매우 친절하지만 데이터를 컴퓨터 처리 가능한 형식으로 가져옵니다.
공식 Booking.com API가 없기 때문에 간단한 작업이 아닙니다. 이 새 가이 새로운 Apified입니다
배우는 편리합니다.
이 배우는 Booking.com에서 호텔 데이터를 추출하여 직접 추출 할 수 있습니다.
호텔 목록 페이지 또는 세부 페이지로 이동하여 자세한 정보를 얻으십시오.
결과는 Booking.com에서 지원하는 모든 기준에 따라 주문할 수 있습니다.
Booking.com은 1000 개의 검색 결과 만 허용하므로 더 다운로드 해야하는 경우
Crawler에게 모든 기준을 수용하도록 Crawler에게 알리려면 useFilters
속성을 사용해야합니다.
필터링 된 페이지. 이것은 한계를 극복하지만 크롤링 시간을 크게 증가시킬 것입니다.
입력은 다음 속성이있는 JSON 객체입니다.
{
"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
유일한 필수 속성입니다. 이것은 Booking.com 검색 쿼리입니다.destType
검색 유형을 지정하고 사용 가능한 값은 city
및 region
입니다.simple
데이터를 목록 페이지에서 추출 해야하는지 정의하면 기본값이 false
입니다.useFilters
설정.minScore
호텔의 최소 허용 등급을 결과에 포함시키고 기본값은 8.4
입니다.maxPages
최대의 페이지 매김 페이지 수를 기어 다닐 수 있습니다.checkIn
.checkOut
체크 아웃 날짜.rooms
수.adults
수 검색을 위해 설정할 성인 수.children
수 검색을 위해 설정해야 할 어린이 수.currency
우선 통화 코드는 사이트에 설정됩니다.language
선호하는 언어 코드.propertyType
유형의 속성 검색은 필터를 사용하므로 useFilters
와 결합 할 수 없습니다. [
"none" ,
"Hotels" ,
"Apartments" ,
"Hostels" ,
"Guest houses" ,
"Homestays" ,
"Bed and breakfasts" ,
"Holiday homes" ,
"Boats" ,
"Villas" ,
"Motels" ,
"Holiday parks" ,
"Campsites" ,
"Luxury tents"
]
minMaxPrice
Min-Max 가격대는 필터를 사용하므로 useFilters
와 결합 할 수 없습니다. [
"none" ,
"0-50" ,
"50-100" ,
"100-150" ,
"150-200" ,
"200+"
]
proxyConfig
Apify 프록시 구성을 정의합니다.이 형식을 존중해야합니다. "proxyConfig" : {
"useApifyProxy" : true ,
"apifyProxyGroups" : [
"RESIDENTIAL" ,
...
]
}
sortBy
결과를 주문할 호텔 속성을 설정하고 다음 중 하나 여야합니다. [
"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
]
search
입력 속성 대신 startUrls
배열로 크롤러를 시작할 수도 있습니다.
이 경우 URL을 수정하는 다른 모든 속성은 여전히 적용되므로
간단한 URL을 사용하고 URL에 남겨 두는 대신 입력 속성을 사용하여 다른 모든 옵션을 설정하십시오.
URL 매개 변수 충돌을 피하십시오.
스타트 컬이 호텔 디테일 페이지 인 경우 긁을 것입니다. 호텔 목록 페이지 인 경우 결과
simple
속성에 따라 다릅니다. true
이라면 페이지가 긁히거나 모든 링크가
세부 페이지는 대기열에 추가되고 나중에 긁히게됩니다.
startUrls
속성은 다음과 같이 다양한 URL 배열을 제공해야합니다.
{
"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 ,
...
}
simple
입력 속성을 사용하는 경우 단일 호텔의 예제 출력이 다음과 같습니다.
{
"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"
}
}
그렇지 않으면 출력이 훨씬 더 포괄적 일 것입니다. 특히 rooms
배열은
checkIn
및 checkOut
입력 속성이 설정된 경우에만 데이터를 포함합니다.
{
"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"
]
} ,
...
]
}
배우는 프록시 없이는 작동하지 않습니다. 즉, 프록시를 설정하지 않고 실행하려는 경우 정확하게 설명하는 메시지가 실패합니다.
Booking.com 은이 제한을 우회 해야하는 경우 최대 1000 개의 결과 만 표시됩니다.
useFilters
입력 속성을 활용할 수 있습니다. 그러나 그러한 경우에는 불가능합니다
스크레이퍼가이를 무시하기 때문에 시작 URL에서 제한 필터를 사용합니다.
특정 객실에 대한 데이터를 가져와야하는 경우 크롤러는 checkIn
시작하고
checkOut
입력 속성 (Booking.com은 특정 날짜에 대한 객실 정보 만 표시).