البرمجة

جمع تقييمات الفندق من HolidayIQ باستخدام Rvest في R

في عالم تطوير الويب الحديث، يعتبر جمع المعلومات من صفحات الويب وتحليلها تحدًا مثيرًا، خاصةً عندما يكون هناك تفاعل ديناميكي يتم تحميله باستخدام JavaScript. في هذه الحالة، ترغب في جمع جميع تقييمات الفندق من صفحة HolidayIQ باستخدام حزمة Rvest في R.

أولاً وقبل البدء في الاستخدام الفعلي لـ Rvest، يجب عليك فهم كيف يتم تحميل التقييمات الإضافية بعد النقر على زر “View more”. يُفضل استخدام أدوات تطوير المتصفح لفحص عناصر الصفحة والشبكة لفهم كيف يتم استرجاع البيانات الإضافية.

باستخدام Rvest، يمكنك استخدام الدالة html_nodes() لتحديد العناصر على الصفحة. على سبيل المثال، يمكنك استخدام:

R
library(rvest) url <- "http://www.holidayiq.com/Taj-Exotica-Benaulim-hotel-2025.html" page <- read_html(url) # استخدم تحديد CSS للعثور على الزر "View more" view_more_button <- html_nodes(page, ".view-more-button") # قم بالنقر على الزر "View more" باستخدام JavaScript # هنا يمكنك استخدام Selenium أو RSelenium إذا كنت بحاجة إلى تفاعل مباشر مع JavaScript # بعد ذلك، قم بقراءة الصفحة مرة أخرى لجلب جميع التقييمات page <- read_html(url) # استخدم مرة أخرى html_nodes() لاستخراج جميع التقييمات reviews <- html_nodes(page, ".class-of-reviews") # استبدل "class-of-reviews" بالفعلي # ثم، استخدم html_text() لاستخراج نص التقييمات reviews_text <- html_text(reviews)

يرجى استبدال “.class-of-reviews” بالفئة الفعلية المستخدمة على صفحة الويب الخاصة بك.

لاحظ أنه في حالة تحميل الصفحة بواسطة JavaScript، قد تحتاج إلى استخدام Selenium أو RSelenium لتحكم في المتصفح والنقر على الزر “View more”. تأكد من تثبيت واستخدام هذه الحزم إذا كان النقر على الزر يؤدي إلى تحميل محتوى إضافي بواسطة JavaScript.

المزيد من المعلومات

لضمان جمع جميع التقييمات بشكل فعال، يُفضل تحليل عناصر الصفحة باستمرار ومتابعة أي تغييرات تحدث في هيكل الصفحة بمجرد النقر على زر “View more”. إليك خطوات إضافية لتحسين عملية الجمع:

  1. استخدام Selenium أو RSelenium:
    إذا كنت تجد أن النقر على زر “View more” يؤدي إلى تحميل المزيد من التقييمات بواسطة JavaScript، يمكنك النظر في استخدام حزم مثل Selenium أو RSelenium لتحكم في المتصفح وتشغيل النقر على الزر.

    مثال باستخدام RSelenium:

    R
    library(RSelenium) # قم بتشغيل متصفح Firefox driver <- rsDriver(browser = "firefox") # افتح صفحة الويب driver$client$navigate(url) # نقر على زر "View more" button <- driver$client$findElement("css selector", ".view-more-button") button$click() # انتظر لحين تحميل المزيد من التقييمات Sys.sleep(5) # احصل على محتوى الصفحة بعد النقر page_source <- driver$client$getPageSource()[[1]] # استخدم Rvest لتحليل الصفحة بعد النقر page_after_click <- read_html(page_source)
  2. تحديد واستخراج البيانات:
    بعد الحصول على صفحة الويب بعد النقر على زر “View more”، قم بتحليل عناصر الصفحة باستخدام Rvest. ابحث عن العناصر التي تحتوي على التقييمات الجديدة وقم باستخراجها بواسطة html_nodes() و html_text().

    R
    # استخدم Rvest لتحليل الصفحة بعد النقر page_after_click <- read_html(page_source) # ابحث عن عناصر التقييمات الجديدة new_reviews <- html_nodes(page_after_click, ".class-of-new-reviews") # استبدل "class-of-new-reviews" بالفعلي # استخدم html_text() لاستخراج نص التقييمات الجديدة new_reviews_text <- html_text(new_reviews)
  3. تكرار العملية:
    قد تحتاج إلى تكرار عملية النقر على زر “View more” واستخراج التقييمات حتى تحصل على جميع التقييمات المتاحة.

    R
    # تكرار العملية حسب الحاجة # قم بتكرار الخطوات 1 و 2 بناءً على الحاجة لجمع المزيد من التقييمات

باستخدام هذه الخطوات، يمكنك تحسين عملية جمع التقييمات وضمان استرجاع جميع المعلومات المتاحة على صفحة HolidayIQ لتقييمات الفندق المعني.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر