ما بعد العنوان

جدول المحتويات

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

فيما يلي بعض التحسينات الديناميكية للموقع الإلكتروني التي يتم تنفيذها بواسطة Javascript.

  • التحقق من صحة الإدخال من نماذج الويب
  • الرسوم المتحركة لعناصر الصفحة مثل تغيير حجم الصفحة ونقلها وتلاشيها
  • تحميل بيانات جديدة دون إعادة تحميل الصفحة
  • تشغيل الصوت والفيديو
  • إصلاح مشكلات توافق المتصفح

يمكنك استخدام الكشط لجمع البيانات المنظمة من المواقع الإلكترونية بطريقة آلية. يُعرف كشط الويب أيضًا باسم استخراج بيانات الويب. بعض حالات الاستخدام الرئيسية لكشط الويب هي:

  • مراقبة الأخبار
  • ذكاء الأسعار
  • توليد العملاء المحتملين
  • مراقبة الأسعار
  • أبحاث السوق

دعونا نفهم أولاً الحاجة إلى كشط المواقع الإلكترونية.

لماذا تحتاج إلى كشط موقع جافا سكريبت؟

تستخدم الشركات كشط الويب للاستفادة من الكم الهائل من البيانات المتاحة للجمهور لاتخاذ قرارات أكثر ذكاءً. فيما يلي بعض المجالات التي يتم فيها استخدام كشط الويب.

  • التجارة الإلكترونية
  • وسائل التواصل الاجتماعي
  • الأعمال المصرفية 
  • التمويل
  • التسويق 
  • عقارات
  • التمويل
  • تحسين محرك البحث
  • خيوط المبيعات

فيما يلي الأسباب التي تجعل الشركات بحاجة إلى كشط مواقع الويب.

Automation – It is not possible to copy and paste each piece of information from a website. The companies use scraping softwares to automate most of their associated processes.

Data Management – You can not use databases and spreadsheets to manage numerals and figures on a website configured in HTML. So, the companies use web scraping tools for managing their data.

Real Estate Listing – The real estate agents use web scraping for populating their database of available properties for rent or for sale. 

Shopping Site Comparison Data – The companies use web scraping to scrape pricing and product data from each retailer, so that they can provide their users with the comparison data they desire. 

Industry Statistics and Insights – The companies use scraping for building massive databases and drawing industry-specific insights from these. For instance, a company can scrape and analyze tons of data about oil prices. It can then sell their insights to oil companies across the world.

كشط موقع جافا سكريبت باستخدام بايثون

دعنا نرى كيف يمكنك استخدام سيلينيوم لكشط مواقع جافا سكريبت.

تثبيت مكتبة سيلينيوم

يمكنك تثبيت سيلينيوم باستخدام الأمر التالي.

pip install selenium

تثبيت برنامج تشغيل الويب

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

مثال على ذلك

دعونا ننظر في مثال سيلينيوم بسيط يتضمن جمع عنوان موقع ويب. لهذا، سنقوم أولاً باستيراد webdriver من سيلينيوم في ملف بايثون كما هو موضح أدناه:

from selenium import webdriver 

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

WEBDRIVER_PATH = './'
driver = webdriver.Firefox(WEBDRIVER_PATH) 

Now we define the URL to get the title of the website.

URL = 'https://www.google.com'
driver.get(URL)
print (driver.title)

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

هذه هي صفحة google من برنامج تشغيل الويب الخاص بـ Firefox. سيكون العنوان المطبوع على وحدة التحكم كما يلي:

We have to manually close the firefox window that was opened. We will add driver.quit() at the end of our code so that the window will be automatically closed after the job is done. 

from selenium import webdriver 

WEBDRIVER_PATH = './'
driver = webdriver.Firefox(WEBDRIVER_PATH) 

URL = 'https://www.google.com'
driver.get(URL)
print (driver.title)
driver.quit()

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

from selenium import webdriver 
 
WEBDRIVER_PATH = './' 
driver = webdriver.Firefox(WEBDRIVER_PATH) 
URL = 'https://www.youtube.com'
driver.get(URL)
print (driver.title)
driver.quit()

Let’s try something new here. We can edit the search box and fill it with the word “Selenium” by using the “Keys” class as shown below.

from selenium.webdriver.common.keys import Keys 

بعد تهيئة برنامج تشغيل الويب في Firefox والحصول على عنوان Youtube، نقوم بإنشاء كائن يحتوي على مربع البحث باستخدام xpath.

search_box = driver.find_element_by_xpath('//input[@id="search"]')

ثم نعدل محتوى مربع البحث ونملأه بكلمة "سيلينيوم".

search_box.send_keys('Selenium')

Once we fill the search box with our desired content, we can press “Enter” to make the search active.

search_box.send_keys(Keys.ENTER)

You can see in the below image that the Youtube search box contains the word “Selenium”.

استخدام وكيل

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

لاستخدام سيلينيوم مع وكيل، فإن الحزمة التالية هي الحزمة التي تحتاج إلى تثبيتها.

from selenium wire import webdriver

بعد تثبيت مكتبة Python selenium-wire، تحتاج إلى ذكر ما يلي:

  • اسم_المستخدم_الوكيل
  • كلمة المرور_الوكيل
  • بروكسي_url
  • منفذ_الوكيل

ذكرنا هنا رقم المنفذ العشوائي 8080 كمثال. يمكنك تعيين اسم المستخدم وكلمة المرور وعنوان URL لموقع الويب المطلوب من اختيارك.

proxy_username = "USER_NAME"
proxy_password = "PASSWORD"
proxy_url = "Any Website URL"
proxy_port = 8080

options = {
    "proxy": {
        "http": f"http://{proxy_username}:{proxy_password}@{proxy_url}:{proxy_port}",
        "verify_ssl": False,
    },
}

بالنسبة لبرنامج تشغيل الويب Selenium، فإن الوكلاء المقيمين هم الخيار الأفضل. ذلك لأنه لا يمكن اكتشافها بسهولة على عكس وكلاء مراكز البيانات. فهي توجه طلبات العملاء من خلال عناوين IP السكنية وتكسب ثقة أكبر من عناوين IP الخاصة بمراكز البيانات. كما أنها مفيدة في الوصول إلى مواقع الويب المعقدة التي تستخدم جافا سكريبت مثل يوتيوب وجوجل وإنستجرام وغيرها.

لماذا استخدام البروكسيات لكشط موقع JS الإلكتروني

تحتاج إلى استخدام البروكسيات لكشط موقع ويب للأسباب التالية:

  • تُستخدم البروكسيات لتحسين الأمان وموازنة حركة المرور على الإنترنت لموقع ويب.
  • يحتاج كاشطو الويب إلى استخدام وكلاء لإخفاء هويتهم وجعل حركة المرور الخاصة بهم تبدو وكأنها حركة مرور مستخدم عادي.
  • تُستخدم البروكسيات أيضاً لحماية البيانات الشخصية لمستخدمي الويب.
  • تساعد البروكسيات في الوصول إلى المواقع الإلكترونية المحجوبة من قبل آلية الرقابة في الدولة.
  • يمكنك الزحف إلى مواقع الويب باستخدام الوكلاء بطريقة موثوقة. 
  • تعتبر البروكسيات ذات قيمة عندما تحتاج إلى كشط بيانات المنتجات من تجار التجزئة عبر الإنترنت. ذلك لأنها تمكّنك من تقديم طلبك من منطقة جغرافية معينة، ويمكنك الوصول إلى المحتوى المحدد الذي يعرضه الموقع الإلكتروني لذلك الموقع.
  • تساعدك البروكسيات على تقديم عدد كبير من الطلبات إلى الموقع الإلكتروني المستهدف دون التعرض للحظر.
  • يمكنك استخدام البروكسي لإجراء عدد غير محدود من الاتصالات المتزامنة بنفس المواقع الإلكترونية أو بمواقع مختلفة.

الخاتمة

تجريف الويب مهم حيث يمكنك استخدامه من أجل:

  • تجريد إعلانات المنتجات/الخدمات وتقديم رؤى حول ميزانياتها
  • التنبؤ باتجاهات الموضة للبقاء في المنافسة
  • استكشاف قنوات التواصل الاجتماعي واكتشاف العملاء المحتملين وما إلى ذلك.

ناقشنا كذلك كيف يمكنك استخدام سيلينيوم لكشط مواقع الويب المميزة بجافا سكريبت في بايثون. يمكنك كشط محتوى المواقع الثابتة وكذلك المواقع الديناميكية مثل Youtube. تحتاج أيضًا إلى استخدام وكلاء سيلينيوم للاختبار الآلي. أفضل البروكسيات التي يمكنك استخدامها هي البروكسيات السكنية لأنها سريعة للغاية ولا يمكن اكتشافها بسهولة على عكس البروكسيات الأخرى.

آمل أن تكون قد فهمت كيفية كشط موقع جافا سكريبت باستخدام بايثون.