Apify Actor لاستخراج البيانات حول الفنادق من Booking.com.
يوفر Booking.com أنواعًا مختلفة من أماكن الإقامة في جميع أنحاء العالم. واجهة المستخدم
هو ودود للغاية للمستخدم البشري ، ولكن للحصول على البيانات بتنسيق قابلة للحفاظ على الجهاز
ليست مهمة بسيطة ، حيث لا توجد واجهة برمجة تطبيقات Booking.com الرسمية. هذا هو المكان الذي تمثله هذا القائم الجديد
الممثل يأتي في متناول يدي.
يستخرج هذا الممثل بيانات الفندق من booking.com ، يمكن إما الاستخراج مباشرة من
صفحة قائمة الفندق أو انتقل إلى صفحة التفاصيل للحصول على معلومات أكثر تفصيلاً.
يمكن طلب النتائج بأي معايير تدعمها Booking.com.
نظرًا لأن Booking.com يتيح 1000 نتيجة بحث فقط ، في حالة حاجة إلى تنزيل المزيد ،
ستحتاج إلى الاستفادة من سمة 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
في حالة ما إذا كان ينبغي على الزاحف استخدام مرشحات المعايير للتغلب على الحد الأدنى لـ 1000 نتيجة.minScore
الحد الأدنى لتصنيف الفندق المسموح به في النتائج ، الافتراضي هو 8.4
.maxPages
يحدد الحد الأقصى لعدد صفحات ترقيم تراكم.checkIn
في تنسيق mm-dd-yyyy.checkOut
تاريخ تسجيل المغادرة بتنسيق MM-DD-YYYY.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 Price ، سوف يستخدم المرشحات ، لذلك لا يمكن دمجها مع 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
Cotain مجموعة من عناوين 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 START ، لأن الكاشطة سوف تتجاوزها.
إذا كنت بحاجة إلى الحصول على بيانات حول غرف محددة ، فيجب بدء تشغيل الزاحف مع checkIn
و
سمات إدخال checkOut
(Booking.com يعرض فقط معلومات الغرفة لتواريخ محددة).