شعار زيفيرنت

تجريف الويب باستخدام PyScrappy

التاريخ:

                                                            مصدر الصورة: المؤلف

المُقدّمة

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

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

ستستكشف هذه المقالة أداة تجريف الويب التي تم تقديمها مؤخرًا و PyScrappy. إنها مكتبة Python ممتازة لجمع البيانات من التجارة الإلكترونية والوسائط الاجتماعية والصور والأغاني والأخبار وغيرها الكثير. اتبع الخطوات الواردة في هذه المقالة لتتعلم بسرعة تجريف الويب من مواقع الويب المختلفة باستخدام PyScrappy.

مقدمة إلى Web Scraping & PyScrappy

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

PyScrappy هي حزمة أخرى مفتوحة المصدر ومرنة من Python لكشط البيانات المشابهة لتلك المذكورة أعلاه. تمكن المستخدمين من استخراج البيانات من مصادر مختلفة بسرعة. فيما يلي بعض ميزات PyScrappy:

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

تقدم PyScrappy ثمانية كاشطات مختلفة لكشط البيانات المطلوبة بسهولة من مصادر مختلفة. هذه الكاشطات الأخرى هي:

  1. مكشطة التجارة الإلكترونية
  2. مكشطة الوسائط الاجتماعية
  3. مكشطة الطعام
  4. مقتطف الأخبار
  5. ويكيبيديا مكشطة
  6. مكشطة الأسهم
  7. مكشطة الأغنية
  8. أداة إزالة الصور

يتطلب PyScrappy بايثون> = 3.6. يمكنك العثور على ملف شفرة المصدر مستضاف على جيثب. لأحدث إصدار ، يمكن تنزيل أدوات التثبيت الثنائية من PyPi، ووثائق PyScrappy متاحة هنا.

دعونا نبدأ البرنامج التعليمي الخاص بنا عن طريق تثبيت مكتبة PyScrappy باستخدام الأمر pip.

نقطة تثبيت PyScrappy

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

بعد تثبيت المكتبة ، علينا أولاً استيراد الحزمة باستخدام الأمر "استيراد".

استيراد PyScrappy مثل ps
  1. مكشطة التجارة الإلكترونية:

باستخدام مكشطة التجارة الإلكترونية هذه ، نقوم بإنشاء مثيل مكتبة PyScrappy الذي يتفاعل مع فئة "ECommerceScrapper". باستخدام هذه الكاشطة ، يمكننا بسهولة كشط البيانات من مواقع التجارة الإلكترونية المختلفة مثل Alibaba و Flipkart و Snapdeal.

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

obj = ps.ECommerceScrapper ()

على سبيل المثال ، أرغب في الحصول على كمبيوتر مكتبي جديد من Flipkart ومجموعة رائعة من سماعات الرأس من Snapdeal. لذلك ، عندما أبحث في الكلمة الأساسية "الكمبيوتر' على فليبكارت، I الحصول على بضع مئات من النتائج. يمكن أن تساعد خيارات تصفية "الشعبية" و "السعر" و "المميز" و "تاريخ الإضافة" وخيارات فئة اللوحة الجانبية (ذاكرة الوصول العشوائي والتخزين واللون ووحدة المعالجة المركزية وحجم عرض الشاشة وما إلى ذلك) في صفحة نتائج البحث في فرز النتائج. ومع ذلك ، فإن التمرير عبر صفحات متعددة أمر شاق للغاية. لذلك ، يمكنني استخدام مكشطة التجارة الإلكترونية Flipkart لمساعدتي في اختيار أفضل منتج من خلال تخزين سمات مختلفة مثل الاسم والأسعار (سعر البيع والسعر الأصلي) والوصف والتصنيف من جميع المنتجات. يتم تخزين قيم هذه السمات في إطار بيانات واحد ، ولا داعي لتصفح الصفحات الفردية لأي منتج. بهذه الطريقة ، يمكنني رؤية جميع النتائج في ورقة واحدة مع جميع المواصفات / السمات ، والتي ستمكنني من اتخاذ قرار شراء مستنير.

دعونا نرى كيف تعمل مكشطة التجارة الإلكترونية Pyscrappy. التركيب اللغوي لذلك هو -

obj.flipkart_scrapper ('product_name'، n_pages)

سأبحث عن جهاز كمبيوتر مكتبي عن طريق إدخال "اسم_المنتج" كـ "كمبيوتر شخصي" وعدد الصفحات إلى 18 (أي عدد الصفحات التي ظهرت بعد البحث بالكلمة الرئيسية على موقع الويب) ، وأردت مسح جميع النتائج . قد يكون الأمر مختلفًا في حالتك اعتمادًا على وقت البحث ومكانه بالتنسيق التالي. أيضًا ، من فضلك تذكر أن تكون لطيفًا مع الخوادم عند طلب كشط البيانات ، على سبيل المثال ، لا تكشط الكثير من البيانات في وقت قصير.

obj.flipkart_scrapper ('PC'، 18)

وبالمثل ، بالنسبة لبحث سماعات الرأس على Snapdeal ، سأستخدم snapdeal_scrapper. سيساعد ذلك في استخراج البيانات المطلوبة من موقع Snapdeal الإلكتروني بفئات مثل الاسم والسعر والسعر الأصلي وعدد التقييمات من المنتج المطلوب. بعد البحث عن الكلمة الرئيسية "سماعات الرأس" ، توجد خمس صفحات لنتائج البحث. بناء الجملة لهذا هو

obj.snapdeal_scrapper ('product_name'، n_pages)

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

obj.snapdeal_scrapper ("سماعات الرأس"، 5)

إليك ما تبدو عليه البيانات المسقطة من Flipkart:

تجريف على شبكة الإنترنت

إليك ما تبدو عليه البيانات المسقطة من Snapdeal:

Snapdeal

2. مكشطة الوسائط الاجتماعية:

على غرار الكاشطة السابقة ، تنشئ مكشطة الوسائط الاجتماعية مثيل مكتبة PyScrappy للتفاعل مع الفصل SocialMediaScrapper. باستخدام هذه الكاشطة ، من الممكن كشط البيانات من ثلاثة مواقع للتواصل الاجتماعي مثل Instagram و Twitter و YouTube. بالنسبة إلى هذا المكشطة بالذات ، سأوضح استخدام مكشطة YouTube. لكشط بيانات الوسائط الاجتماعية ، مرة أخرى ، نبدأ بإنشاء كائن من هذه الفئة ،

obj = ps.SocialMediaScrapper ()

يوتيوب المزيل:

باستخدام مكشطة YouTube هذه ، يمكننا كشط سمات بيانات YouTube مثل "عنوان الفيديو" و "عنوان URL للفيديو" و "عدد المشاهدات" التي حصل عليها الفيديو وعدد الأيام بعد الإصدار.

على سبيل المثال ، لنفترض أنني أريد الحصول على قائمة كاملة بمقاطع الفيديو من قناة Analytics Vidhya على YouTube. لذلك ، سأدخل عنوان URL لقسم مقاطع فيديو قناة YouTube وعدد الصفحات بالتنسيق التالي.

obj.youtube_scrapper ('url_of_video_sec'، n_pages)

لاحظ أنه من الممكن كشط أي عدد تريده من الصفحات لمزيل YouTube. ولكن تأكد من أن عنوان URL للقناة صالح وينتهي بـ "مقاطع الفيديو" لأن عنوان URL فقط من قسم الفيديو سيعمل. أقوم بكشط الصفحتين الأوليين فقط لأغراض العرض التوضيحي.

df = obj.youtube_scrapper ('https://www.youtube.com/c/Analyticsvidhya/videos'، 2)

إليك ما يبدو عليه DataFrame:

يوتيوب مكشطة

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

XNUMX) أداة إزالة الأخبار:

باستخدام News Scraper ، يمكننا إنشاء مثيل لمكتبة PyScrappy للتفاعل مع فئة NewsScrapper. يساعد في تجريف بيانات الأخبار ، أي العناوين والوقت والتاريخ والأخبار ، من www.inshorts.com. لاستخراج البيانات ، نحتاج إلى إدخال النوع وعدد الصفحات بالتنسيق التالي.

obj.news_scrapper ('النوع'، ​​n_pages)

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

دعونا نحاول حذف الموقع من أجل أخبار "العالم". نستخدم الأمر التالي-

obj.news_scrapper (1، "world")

تظهر البيانات المقتطعة من الموقع على النحو التالي-

أخبار المزيل | تجريف على شبكة الإنترنت

رابعًا) ويكيبيديا

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

obj = ps.WikipediaScrapper ()

الفقرة_ المقتطعة ():

بعد ذلك ، إذا أردنا حذف فقرة بأكملها ، فإننا نستخدم الأمر para_scrapper. يتعين علينا إدخال الكلمة الأساسية التي نعتزم استخراج البيانات من ويكيبيديا بالتنسيق التالي.

obj.para_scrapper ("كلمة رئيسية")

دعونا نستخدم مكشطة للكلمة الرئيسية "التعلم الآلي".

obj.para_scrapper ("التعلم الآلي")

باستخدام الأمر أعلاه ، نحصل على الفقرة التالية.

مكشطة ويكيميديا

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

obj.header_scrapper ("كلمة رئيسية")
obj.header_scrapper ("التعلم الآلي")
تجريف على شبكة الإنترنت
obj.text_scrapper ("كلمة رئيسية")
obj.text_scrapper ("التعلم الآلي")
تجريف على شبكة الإنترنت

هذا هو! آمل أن تكون قد أحببت مقالتي حول تجريف الويب و PyScrappy.

ملاحظات ختامية

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

حتى المقال التالي ، نتمنى لك قراءة سعيدة!

اقرأ المزيد من المقالات حول تجريف الويب و PyScrappy هنا.

كاتب السيرة الذاتية

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

في أوقات فراغها ، تحب الطهي والقراءة والكتابة واكتشاف مكتبات Python-Machine Learning الجديدة أو المشاركة في مسابقات البرمجة.

يمكنك متابعتها لينكدين:, GitHub جيثب:, Kaggle, متوسط, تويتر.

الوسائط الموضحة في هذه المقالة ليست مملوكة لشركة Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف. 

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة