"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > استخدام Scrapy: دليل بسيط لكشط الويب

استخدام Scrapy: دليل بسيط لكشط الويب

تم النشر بتاريخ 2024-08-23
تصفح:492

Using Scrapy: A Simple Guide to Web Scraping

‌Scrapy هو إطار عمل سريع وعالي المستوى لزحف الويب تم تطويره في Python، ويستخدم للزحف إلى مواقع الويب واستخراج البيانات المنظمة من الصفحات. ‌لديها مجموعة واسعة من الاستخدامات ويمكن استخدامها لاستخراج البيانات والمراقبة والاختبار الآلي. ‌

نظرة عامة على سكرابي

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

مزايا Scrapy للزحف إلى صفحات الويب

تشمل مزايا Scrapy للزحف إلى صفحات الويب بشكل أساسي ما يلي: ‌
1‌.كفاءة عالية‌: يستخدم Scrapy المعالجة غير المتزامنة والطلبات المتزامنة، والتي يمكنها التعامل بكفاءة مع مهام الزحف واسعة النطاق وتحسين كفاءة الزحف على الويب. ‌
2.Flexibility‌: يوفر Scrapy مجموعة غنية من المكونات وآليات المكونات الإضافية، ويمكن للمستخدمين تخصيصها وتوسيعها وفقًا لاحتياجاتهم لتلبية احتياجات الزحف المختلفة على الويب.
3.الاستقرار‌: يتمتع Scrapy بقدرة جيدة على تحمل الأخطاء واستقرار، ويمكنه التعامل مع بيئات الشبكة المعقدة والمتغيرة. ‌
4.وظائف غنية‌: يدعم Scrapy تحليل ومعالجة تنسيقات البيانات المتعددة، بما في ذلك HTML وXML وJSON وما إلى ذلك، ويوفر وظائف مثل المعالجة الآلية واستخراج البيانات وتخزين البيانات. ‌
‌5.قابلية التوسع القوية‌: يدعم Scrapy الزحف الموزع، والذي يمكنه الزحف إلى البيانات ومعالجتها في وقت واحد من خلال عقد الزاحف المتعددة لتحسين كفاءة الزحف.

الخطوات الأساسية لكشط صفحات الويب باستخدام برنامج Scrapy

Scrapy هو إطار عمل سريع ومتقدم للزحف على الويب وتجميع الويب، يُستخدم للزحف إلى مواقع الويب واستخراج البيانات المنظمة من الصفحات. ‌إليك الخطوات الأساسية لاستخدام Scrapy لتجريد الويب:‌

1.‌تثبيت Scrapy‌

أولاً، تأكد من تثبيت Scrapy. ‌إذا لم يتم تثبيته بعد، يمكنك تثبيته من خلال النقطة:‌
تثبيت النقطة سكرابي

2. إنشاء مشروع Scrapy

استخدم أمر Scrapy startproject لإنشاء مشروع Scrapy جديد. على سبيل المثال، قم بإنشاء مشروع باسم myproject:
بداية متقطعةمشروعيمشروعي

3. تحديد العنصر

تحديد العنصر في المشروع لتخزين البيانات التي تم الزحف إليها. على سبيل المثال، حدد عنصرًا في myproject/myproject/items.py:

import scrapy

class MyprojectItem(scrapy.Item):
    title = scrapy.Field()
    link = scrapy.Field()
    desc = scrapy.Field()

4. اكتب العنكبوت

قم بإنشاء عنكبوت في مشروعك لتحديد موقع الويب الذي سيتم الزحف إليه وكيفية الزحف إليه. على سبيل المثال، قم بإنشاء ملف Spider باسم example.py في الدليل myproject/myproject/spiders:

import scrapy
from myproject.items import MyprojectItem

class ExampleSpider(scrapy.Spider):
    name = 'example'
    allowed_domains = ['example.com']
    start_urls = ['http://example.com/']

    def parse(self, response):
        items = []
        for sel in response.xpath('//ul/li'):
            item = MyprojectItem()
            item['title'] = sel.xpath('a/text()').get()
            item['link'] = sel.xpath('a/@href').get()
            item['desc'] = sel.xpath('text()').get()
            items.append(item)
        return items

5. قم بتشغيل العنكبوت

استخدم أمر الزحف Scrapy لتشغيل Spider. على سبيل المثال، قم بتشغيل المثال Spider الذي تم إنشاؤه أعلاه:
مثال للزحف المتقطع

6. حفظ البيانات

يمكنك معالجة البيانات التي تم الزحف إليها عن طريق تحديد مسار العنصر، مثل حفظه في ملف أو قاعدة بيانات.

7. مزيد من التكوين

يمكنك أيضًا تكوين مشروع Scrapy حسب الحاجة، مثل إعداد البرامج الوسيطة، وأداة التنزيل، والسجل، وما إلى ذلك.

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

كيفية إعداد Scrapy لاستخدام وكيل المستخدم الديناميكي؟

يعد وكيل المستخدم الديناميكي إستراتيجية فعالة لمنع التعرف على برامج الزحف بواسطة مواقع الويب. ‌ في Scrapy، يمكن تعيين وكيل المستخدم الديناميكي بعدة طرق: ‌ ‌

  • أضف سمة custom_settings في فئة Spider: ‌ هذه السمة عبارة عن قاموس يستخدم لتعيين تكوين Scrapy المخصص. ‌ أضف مفتاح "USER_AGENT" في قاموس الإعدادات المخصصة وقم بتعيين قيمة وكيل المستخدم المقابلة. ‌ ‌

  • استخدم مكتبة fake_useragent: ‌ تحتوي هذه المكتبة على عدد كبير من وكلاء المستخدم المدمجين الذين يمكن استبدالهم بشكل عشوائي. ‌ بعد تثبيت حزمة fake_useragent، قم باستيراد واستخدام المكتبة في ملف تكوين إعدادات Scrapy لإنشاء وكيل مستخدم عشوائي. ‌ ‌

  • تنفيذ برنامج وسيط لوكيل المستخدم العشوائي: ‌ قم بإنشاء برنامج وسيط يستخدم مكتبة fake_useragent لتعيين وكيل مستخدم مختلف لكل طلب. ‌ ‌ ‌
    من خلال هذه الطرق، يمكنك محاكاة سلوك المستخدم العادي بشكل فعال وتقليل خطر تعريف موقع الويب على أنه زاحف. ‌ ‌

لماذا تحتاج إلى إعداد وكيل عند استخدام Scrapy للزحف على الويب؟

عند استخدام إطار عمل Scrapy لتجميع الويب، من الضروري جدًا إعداد وكيل. الأسباب الرئيسية هي كما يلي:

  • تجنب حظر IP: عندما يصل الزاحف إلى موقع الويب، إذا تم استخدام عنوان IP الأصلي مباشرة، فمن السهل التعرف عليه وحظره بواسطة موقع الويب. يمكن أن يؤدي استخدام الوكيل إلى إخفاء عنوان IP الحقيقي، وبالتالي تجنب الحظر وحماية هوية الزاحف. ‌

  • اختراق قيود الوصول: ستضع بعض مواقع الويب قيودًا على الوصول. يمكن أن يؤدي استخدام الوكيل إلى اختراق هذه القيود والحصول بحرية على البيانات على موقع الويب المستهدف. ‌

  • تحسين كفاءة الزاحف: في بعض السيناريوهات التي تتطلب قدرًا كبيرًا من بيانات الزحف، يمكن أن يؤدي استخدام الوكيل إلى تجنب حظر عناوين IP بشكل فعال، وبالتالي ضمان التشغيل العادي لبرنامج الزاحف وتحسين كفاءة الزاحف. ‌
    باختصار، من أجل جمع البيانات بشكل أفضل في إطار عمل Scrapy، من المهم جدًا إعداد وكيل.

كيفية إعداد خادم وكيل في Scrapy؟

يمكن تعيين وكيل في Scrapy عن طريق تعديل ملف settings.py الخاص بالمشروع. ‌الخطوات المحددة هي كما يلي:‌

  1. إعداد الخادم الوكيل:‌أولاً،‌تحتاج إلى الحصول على IP من مزود خدمة وكيل موثوق وحفظه في ملف‌أو استخدام واجهة برمجة تطبيقات الوكيل. ‌

  2. تمكين الوكيل‌:‌Set PROXY_ENABLED = True في ملف settings.py لتمكين الوكيل. ‌

  3. تعيين عنوان IP للوكيل والمنفذ‌:‌يمكنك تحديد الوكيل والمنفذ عن طريق تعيين متغير PROXY،‌على سبيل المثال، PROXY = 'http://your_proxy_ip:port'. ‌

  4. تكوين البرنامج الوسيط لبرنامج التنزيل‌:‌للتأكد من تفعيل إعدادات الوكيل،‌تحتاج إلى إضافة أو تعديل إعدادات البرنامج الوسيط المتعلق بالوكيل في تكوين DOWNLOADER_MIDDLEWARES في ملف settings.py. ‌

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

بيان الافراج يتم استنساخ هذه المقالة على: https://dev.to/lewis_kerr_2d0d4c5b886b02/using-scrapy-a-simple-guide-to-web-scraping-3a47؟1 إذا كان هناك أي انتهاك ، يرجى الاتصال بالدراسة [email protected] لحذف ذلك.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3