عادة ما يستخدم تجريف الويب الديناميكي بعض مكتبات Python، مثل طلبات التعامل مع طلبات HTTP، أو السيلينيوم لمحاكاة سلوك المتصفح، أو pyppeteer. ستركز المقالة التالية على استخدام السيلينيوم.
السيلينيوم هو أداة لاختبار تطبيقات الويب، ولكنه غالبًا ما يستخدم أيضًا لتجميع الويب، خاصة عندما يكون من الضروري حذف محتوى الويب الذي تم إنشاؤه ديناميكيًا بواسطة JavaScript. يمكن للسيلينيوم محاكاة سلوك المستخدم في المتصفح، مثل النقر وإدخال النص والحصول على عناصر صفحة الويب.
أولاً، تأكد من تثبيت السيلينيوم لديك. إذا لم يكن الأمر كذلك، يمكنك تثبيته عبر النقطة:
pip install selenium
تحتاج أيضًا إلى تنزيل WebDriver للمتصفح المقابل. بافتراض أننا نستخدم متصفح Chrome، فأنت بحاجة إلى تنزيل ChromeDriver والتأكد من إضافة مساره إلى متغيرات بيئة النظام، أو يمكنك تحديد مساره مباشرة في الكود.
إليك مثال بسيط للحصول على عنوان صفحة ويب:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager # Setting up webdriver driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) # Open the webpage driver.get('https://www.example.com') # Get the webpage title title = driver.title print(title) # Close the browser driver.quit()
سيفتح هذا البرنامج النصي example.com، ويحصل على عنوانه، ويطبعه.
لاحظ أن webdriver_manager هي مكتبة تابعة لجهة خارجية تدير إصدارات WebDriver تلقائيًا. إذا كنت لا ترغب في استخدامه، فيمكنك أيضًا تنزيل WebDriver يدويًا وتحديد المسار.
قد تشتمل صفحات الويب الديناميكية على محتوى معروض بواسطة JavaScript. يمكن للسيلينيوم الانتظار حتى يتم تحميل هذه العناصر قبل التشغيل، وهو مناسب جدًا لمعالجة صفحات الويب هذه.
عند استخدام Python للزحف إلى صفحات الويب الديناميكية، غالبًا ما تستخدم وكيلاً. إن استخدام البروكسي يتجنب العديد من العوائق من ناحية، ويسرع من كفاءة العمل من ناحية أخرى.
لقد قدمنا تركيب السيلينيوم أعلاه. بالإضافة إلى ذلك، تحتاج أيضًا إلى تنزيل WebDriver للمتصفح المقابل والتأكد من إضافة مساره إلى متغيرات بيئة النظام، أو يمكنك تحديد مساره مباشرة في الكود.
بعد إكمال الخطوات المذكورة أعلاه، يمكننا تكوين الوكيل وإلغاء صفحات الويب الديناميكية:
from selenium import webdriver from selenium.webdriver.chrome.options import Options # Set Chrome options chrome_options = Options() chrome_options.add_argument('--proxy-server=http://your_proxy_ip:port') # Specify the WebDriver path (if you have added the WebDriver path to the system environment variables, you can skip this step) # driver_path = 'path/to/your/chromedriver' # driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options) # If WebDriver path is not specified, the default path is used (make sure you have added WebDriver to your system environment variables) driver = webdriver.Chrome(options=chrome_options) # Open the webpage driver.get('https://www.example.com') # Get the webpage title title = driver.title print(title) # Close the browser driver.quit()
في هذا المثال، --proxy-server=http://your_proxy_ip:port هو المعلمة لتكوين الوكيل. تحتاج إلى استبدال your_proxy_ip والمنفذ بعنوان IP ورقم المنفذ للخادم الوكيل الذي تستخدمه بالفعل يستخدم
إذا كان الخادم الوكيل الخاص بك يتطلب المصادقة، فيمكنك استخدام التنسيق التالي:
chrome_options.add_argument('--proxy-server=http://username:password@your_proxy_ip:port')
حيث يكون اسم المستخدم وكلمة المرور هما اسم المستخدم وكلمة المرور للخادم الوكيل الخاص بك.
بعد تشغيل الكود أعلاه، سيصل السيلينيوم إلى صفحة الويب المستهدفة من خلال الخادم الوكيل الذي تم تكوينه ويطبع عنوان صفحة الويب.
كيفية تحديد المسار إلى ChromeDriver؟
يعد ChromeDriver جزءًا من Selenium WebDriver. يتفاعل مع متصفح Chrome من خلال WebDriver API لتنفيذ وظائف مثل الاختبار الآلي وبرامج زحف الويب.
يتضمن تحديد مسار ChromeDriver بشكل أساسي تكوين متغيرات البيئة. إليك الخطوات المحددة:
1. ابحث عن موقع تثبيت Chrome
يمكنك العثور عليه بالنقر بزر الماوس الأيمن على اختصار Google Chrome على سطح المكتب وتحديد "فتح موقع الملف".
2. أضف مسار تثبيت Chrome إلى متغير بيئة النظام Path
يتيح ذلك للنظام التعرف على ChromeDriver في أي مكان.
3. تنزيل وفك ضغط ChromeDriver
تأكد من تنزيل ChromeDriver المطابق لإصدار متصفح Chrome وفك ضغطه إلى برنامج exe.
4. انسخ ملف exe الخاص بـ ChromeDriver إلى مسار تثبيت Chrome
بهذه الطريقة، عندما تحتاج إلى استخدام ChromeDriver، يمكن للنظام التعرف عليه تلقائيًا واستدعاءه
ما ورد أعلاه هو تطبيق السيلينيوم وبرنامج تشغيل الويب في الزحف الديناميكي على الويب بيثون، وكيفية تجنبه عند الزحف إلى صفحات الويب. بالطبع، يمكنك أيضًا ممارسة العمليات الفعلية من خلال الأمثلة المذكورة أعلاه.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3