دروس سكرابى: كيف تصنع زاحف ويب باستخدام سكرابى؟



في مقالة Scrapy Tutorial هذه ، ستتعلم إنشاء متتبع ارتباطات ويب باستخدام تقنيات استخراج البيانات المختلفة وطرق تخزين البيانات في قاعدة بيانات.

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

ما هو سكرابي؟

Scrapy هو إطار عمل مجاني ومفتوح المصدر للزحف على الويب مكتوب بلغة python. تم تصميمه في الأصل لأداء ، ولكن يمكن استخدامها أيضًا لاستخراج البيانات باستخدام واجهات برمجة التطبيقات. يتم صيانتها بواسطة Scrapinghub ltd.





Scrapy عبارة عن حزمة كاملة عندما يتعلق الأمر بتنزيل صفحات الويب ومعالجة وتخزين البيانات على ملف .

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



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

الهندسة المعمارية scrapy-scrapy التعليمي-edureka

ما هو زاحف الويب؟

زاحف الويب هو برنامج يبحث عن المستندات على الويب تلقائيًا. تمت برمجتها في المقام الأول للعمل المتكرر للتصفح الآلي.

كيف تعمل؟



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

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

دعونا نلقي نظرة على التطبيقات المختلفة التي يمكن استخدام زاحف الويب من أجلها:

  • تبحث بوابات مقارنة الأسعار عن تفاصيل منتجات محددة لإجراء مقارنة بين الأسعار على منصات مختلفة باستخدام زاحف الويب.

  • يلعب متتبع ارتباطات الويب دورًا مهمًا للغاية في مجال التنقيب عن البيانات لاسترجاع المعلومات.

  • تستخدم أدوات تحليل البيانات برامج زحف الويب لحساب البيانات الخاصة بعروض الصفحة والروابط الواردة والصادرة أيضًا.

  • تعمل برامج الزحف أيضًا على مراكز المعلومات لجمع البيانات مثل بوابات الأخبار.

كيفية تثبيت Scrapy؟

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

تثبيت Conda -c Conda-Forge scrapy

يمكنك أيضًا استخدام بيئة النقطة لتثبيت الخردة ،

نقطة تثبيت سكرابى

قد يكون هناك عدد قليل من تبعيات التجميع حسب نظام التشغيل الخاص بك سكرابي مكتوب بلغة بيثون نقية وقد يعتمد على عدد قليل من حزم البايثون مثل:

  • lxml - هو محلل XML و HTML فعال.

  • الطرد - مكتبة استخراج HTML / XML مكتوبة في الأعلى على lxml

  • W3lib - هو مساعد متعدد الأغراض للتعامل مع عناوين URL وتشفيرات صفحات الويب

  • الملتوية - إطار عمل شبكة غير متزامن

  • التشفير - يساعد في تلبية احتياجات الأمان المختلفة على مستوى الشبكة

بدء أول مشروع سكرابى الخاص بك

لبدء مشروعك الخردة الأول ، انتقل إلى الدليل أو الموقع الذي تريد حفظ ملفاتك فيه وقم بتنفيذ الأمر التالي

scrapy startproject projectname

بعد تنفيذ هذا الأمر ، ستحصل على الدلائل التالية التي تم إنشاؤها في هذا الموقع.

  • اسم المشروع/

    • scrapy.cfg: ينشر ملف التكوين

  • اسم المشروع/

    • __init__.py: وحدة Python للمشاريع

    • items.py: ملف تعريف عناصر المشروع

    • middlewares.py: ملف البرامج الوسيطة للمشروع

    • pipelines.py: ملف خطوط أنابيب المشروع

    • settings.py: ملف إعدادات المشروع

  • العناكب /

    • __init__.py: دليل ستضع فيه العناكب لاحقًا

صنع أول عنكبوت لك

العناكب هي فئات نحددها ونستخدمها لجمع المعلومات من الويب. يجب عليك الفئة الفرعية scrapy.Spider وتحديد الطلبات الأولية لتقديمها.

تكتب رمز العنكبوت الخاص بك في ملف بيثون منفصل وحفظه في دليل اسم المشروع / العنكبوت في مشروعك.

كيفية تحويل المضاعف إلى عدد صحيح

quotes_spider.py

استيراد فئة scrapy QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/' ، http://quotes.toscrape.com / page / 2 /،] لعنوان url في عناوين url: العائد scrapy.Request (url = url، callback = self.parse) def parse (self، response): page = response.url.split ('/') [- 2 ] filename = 'quotes-٪ s.html'٪ صفحة مفتوحة (اسم الملف ، 'wb') مثل f: f.write (response.body) self.log ('الملف المحفوظ٪ s'٪ filename)

كما ترى ، حددنا وظائف مختلفة في العناكب لدينا ،

  • الاسم: يحدد العنكبوت ، يجب أن يكون فريدًا في جميع أنحاء المشروع.

  • start_requests (): يجب أن يعرض الطلبات المتكررة التي سيبدأ العنكبوت في الزحف إليها.

  • parse (): هي طريقة يتم استدعاؤها للتعامل مع الاستجابة التي تم تنزيلها مع كل طلب.

استخراج البيانات

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

استيراد فئة scrapy QuotesSpider (scrapy.Spider): name = 'quotes' start_urls = [http://quotes.toscrape.com/page/1/ '، http://quotes.toscrape.com/page/2/ ،] def parse (self، response): للاقتباس في response.css ('div.quote'): ينتج {'text': quote.css (span.text :: text '). get ()،' author ': quote .css (small.author ::text ') get () ، 'العلامات': quote.css (div.tags a.tag :: text'). getall ()}

عند تشغيل هذا العنكبوت ، سيتم إخراج البيانات المستخرجة مع السجل.

تخزين البيانات

إن أبسط طريقة لتخزين البيانات المستخرجة هي باستخدام عمليات تصدير الخلاصة ، استخدم الأمر التالي لتخزين بياناتك.

اقتباسات scrapy crawl -o quotes.json

سيُنشئ هذا الأمر ملف quotes.json يحتوي على جميع العناصر المسردة ، مسلسلة في جسون .

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

إذا وجدت هذه المقالة حول 'برنامج Scrapy Tutorial' ذات الصلة ، فراجع ملف شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرة في جميع أنحاء العالم.

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

إذا واجهت أي أسئلة ، فلا تتردد في طرح جميع أسئلتك في قسم التعليقات في 'برنامج Scrapy التعليمي' وسيسعد فريقنا بالإجابة.