booking.comからホテルに関するデータを抽出するための俳優を編成します。
Booking.comは、世界中のさまざまな種類の宿泊施設を提供しています。ユーザーインターフェイス
ただし、マシンの処理可能な形式でデータを取得するためには、人間のユーザーにとってはとてもフレンドリーです
公式Booking.com APIがないため、簡単なタスクではありません。これは、この新しいアピードです
俳優は役に立ちます。
この俳優はBooking.comからホテルのデータを抽出します。
ホテルリストページまたは詳細ページに移動して、より詳細な情報を取得します。
結果は、Booking.comがサポートする任意の基準で注文できます。
Booking.comでは1000の検索結果しか許可されていないため、さらにダウンロードする必要がある場合に備えて、
useFilters
属性を利用して、Crawlerにすべての基準を除いて指示する必要があります
フィルタリングされたページ。これは限界を克服しますが、raw索の時間を大幅に増やします。
入力は、次のプロパティを備えた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
、Crawlerが基準フィルターを利用して1000の結果の制限を克服する必要がある場合に設定します。minScore
、結果に含まれるホテルの最小許可評価を指定します。デフォルトは8.4
です。maxPages
raw索するページネーションページの最大数を設定します。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
の配列でCrawlerを起動することもできます。
そのような場合、URLを変更する他のすべての属性は引き続き適用されるため、
Simple URLを使用し、URLに残すのではなく、入力属性を使用して他のすべてのオプションを設定します
URLパラメーターの衝突を避けてください。
Starturlがホテルの詳細ページである場合、それは削られます。それがホテルリストページである場合、結果は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
入力属性を使用できます。ただし、そのような場合は不可能です
スクレーパーがそれらをオーバーライドするため、Start URLで制限フィルターを使用すること。
特定の部屋に関するデータを取得する必要がある場合は、クローラーをcheckIn
で開始する必要がありますcheckOut
入力属性(Booking.comは、特定の日付の部屋情報のみを表示します)。