البرمجة

استخدام Selenium لاستخراج البيانات الديناميكية

عند مراجعة الكود الذي قدمته، يبدو أنك تقوم بمحاولة استخراج روابط الصور من صفحة ويب على موقع Flickr باستخدام تقنية BS4 للويب سكرابينغ. ومع ذلك، يبدو أن الكود لا يُعيد أي قيمة.

تأكدت من العنصر الذي تحاول الوصول إليه وهو عنصر div الذي يحمل الفئة “photo-list-photo-interaction”، ولكن النتيجة لم تعد أية قيم.

قد يكون السبب في ذلك هو أن المحتوى الذي تحاول الوصول إليه قد يتم تحميله ديناميكياً بواسطة JavaScript بعد تحميل الصفحة، وليس متاحاً في الاستجابة الأولية التي تسترجعها من الطلب باستخدام requests.

لحل هذه المشكلة، يمكنك استخدام Selenium بدلاً من BS4 إذا كان المحتوى يتم تحميله ديناميكياً. يسمح Selenium بتشغيل متصفح ويب وتفاعل مع المواقع بنفس الطريقة التي يفعلها الإنسان، مما يتيح لك الوصول إلى المحتوى الديناميكي.

فيما يلي مثال على كيفية استخدام Selenium للوصول إلى المحتوى الديناميكي على موقع Flickr:

python
from selenium import webdriver from selenium.webdriver.common.by import By # تهيئة المتصفح driver = webdriver.Chrome() # يمكن استخدام أي متصفح آخر مثل Firefox أو Edge # فتح الصفحة driver.get("https://www.flickr.com/photos/") # انتظار تحميل المحتوى الديناميكي (يمكنك تعيين وقت الانتظار حسب حاجتك) driver.implicitly_wait(10) # انتظر 10 ثواني قبل الاستمرار # العثور على العناصر المطلوبة linkItems = driver.find_elements(By.CSS_SELECTOR, 'div.photo-list-photo-interaction a[ref^=/photos]') # طباعة الروابط for linkItem in linkItems: print(linkItem.get_attribute('href')) # إغلاق المتصفح بعد الانتهاء driver.quit()

هذا الكود يستخدم Selenium لفتح متصفح ويب (Chrome في هذا المثال) ويقوم بتحميل الصفحة وانتظار تحميل المحتوى الديناميكي، ثم يقوم بالبحث عن الروابط المطلوبة باستخدام محددات CSS ويطبعها.

يمكنك تعديل وتخصيص هذا الكود وفقاً لاحتياجاتك والعناصر التي ترغب في استخراجها من صفحة Flickr.

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

بالطبع، ها هو الاستكمال:

عند محاولة الوصول إلى محتوى الصفحة باستخدام BS4 فقط، قد تواجه تحديات في الحصول على المحتوى الديناميكي الذي يتم تحميله بعد تحميل الصفحة الأولية. وبهذه الطريقة، يمكن أن تفشل محاولاتك في استخراج البيانات التي ترغب في الوصول إليها.

من الجيد دائمًا أن تكون قادرًا على التعامل مع الصفحات التي تستخدم تقنيات الجافا سكريبت لتحميل المحتوى ديناميكيًا بعد تحميل الصفحة. وهنا يأتي دور Selenium، حيث يتيح لك Selenium التحكم في متصفح ويب حقيقي وتفاعل مع المواقع بنفس الطريقة التي يفعلها المستخدم البشري.

عند استخدام Selenium، يمكنك بسهولة فتح متصفح ويب مثل Chrome أو Firefox وتحميل الصفحة والانتقال بين العناصر والتفاعل معها كما لو كنت تقوم بذلك يدويًا. هذا يجعل Selenium أداة قوية للوصول إلى المحتوى الديناميكي واستخراج البيانات بسهولة.

لذا، عندما تجد نفسك تواجه مشكلة في استخراج البيانات من صفحة الويب، خاصة إذا كان المحتوى يتم تحميله ديناميكيًا، فاستخدام Selenium يمكن أن يكون الحل الأمثل.

باستخدام Selenium، يمكنك بسهولة تجاوز الصعوبات التي قد تواجهها مع استخدام BS4 فقط، وضمان الحصول على جميع البيانات التي تحتاج إليها من الصفحات الديناميكية على الويب.

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

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

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

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