شعار proxyscrape داكن

ScrapegraphAI: تشغيل كشط الويب باستخدام LLMs

أدلة إرشادية, بايثون, كشط, 27 سبتمبر - 27 سبتمبر 20245 دقائق للقراءة

لقد تطورت عملية كشط الويب من الاستخراج البسيط القائم على القواعد إلى تقنيات أكثر تقدمًا تعتمد على نماذج لغوية كبيرة (LLMs) لاستخراج البيانات المدركة للسياق. يحتل ScrapegraphAI موقع الصدارة في هذا التطور، مما يتيح تجريف الويب من خلال نماذج لغوية كبيرة مثل OpenAI و Gemini وحتى النماذج المحلية مثل Ollama. في هذه المدونة، سنتعمق في هذه المدونة في ماهية ScrapegraphAI، وكيف يعمل، وسنتعرف على مثال واقعي لكشط البيانات من موقع ويب مع تكامل الوكيل.

ماذا ستتعلم؟

سنغطي في هذه المدونة ما يلي:

  • ما هو ScrapegraphAI وكيف يعمل
  • الاستخدام الأساسي ل ScrapegraphAI لكشط المواقع الإلكترونية
  • كيفية دمج الوكلاء للحصول على أداء أفضل
  • مثال عملي على استخدام نموذج GPT-4o-mini من OpenAI لاستخراج بيانات الكتب من الموقع الإلكتروني Books to Scrape

ما هو ScrapegraphAI وكيف يعمل؟

ScrapegraphAI هو إطار عمل قوي لكشط الويب (مفتوح المصدر) يستفيد من نماذج لغوية كبيرة لاستخراج البيانات من المواقع الإلكترونية بشكل ديناميكي. على عكس أدوات الكشط التقليدية التي تعتمد على محددات CSS الجامدة أو XPath، يستخدم ScrapegraphAI نماذج لغوية كبيرة لتفسير واستخراج البيانات المنظمة من مجموعة واسعة من المصادر، بما في ذلك صفحات الويب الديناميكية والملفات مثل ملفات PDF. ما عليك سوى تحديد المعلومات التي تبحث عنها، ودع ScrapeGraphAI يقوم بالمهمة الصعبة، مما يوفر خيارًا أكثر مرونة وأقل صيانة مقارنةً بأدوات الكشط التقليدية. تتمثل الميزة الرئيسية ل ScrapegraphAI في قدرته على السماح للمستخدمين بتحديد مخطط للبيانات التي يريدون استخراجها. يمكنك تحديد تنسيق منظم للمخرجات الخاصة بك، وسيقوم ScrapegraphAI بضبط البيانات المستخرجة لتتناسب مع هذا المخطط.

تتمثل إحدى الميزات البارزة في ScrapegraphAI في مرونته في اختيار LLMs، مع دعمه لما يلي

  • طرازات GPT من OpenAI مثل GPT-3.5 و GPT-4o-mini
  • الجوزاء لحالات استخدام أكثر تحديداً
  • النماذج المحلية باستخدام أولاما لحلول الكشط الخاصة والفعالة من حيث التكلفة

خطوط أنابيب القشط الرئيسية

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

  • SmartScraperGraph: مكشطة صفحة واحدة تحتاج فقط إلى مطالبة المستخدم ومصدر إدخال (موقع ويب أو ملف محلي).
  • SearchGraph: يستخرج المعلومات من أعلى نتائج البحث في محرك البحث.
  • SpeechGraph: يقوم بمسح البيانات من الصفحة وإنشاء ملف صوتي من النتائج.
  • ScriptCreatorGraph: يمسح صفحة واحدة ويُنشئ برنامج نصي من بايثون للاستخراج المستقبلي.
  • SmartScraperMultiGraph: كشط البيانات من صفحات متعددة باستخدام موجه واحد وقائمة من عناوين URL.
  • ScriptCreatorMultiGraph: مشابه للسابق ولكنه يولد نصوص Python البرمجية لكشط متعدد الصفحات.

في القسم التالي، سنركز في القسم التالي على SmartScraperGraph، والذي يسمح بكشط صفحة واحدة بمجرد توفير موجه وعنوان URL المصدر.

الاستخدام الأساسي ل ScrapegraphAI

المتطلبات الأساسية

للمتابعة، تحتاج إلى تثبيت بعض التبعيات. يمكنك القيام بذلك عن طريق تشغيل الأمر التالي:

بايب تثبيت سكرابجرافيفاي openai python-dotenv
 تثبيت playwright
  • سكرابغراف: هذه هي الحزمة الأساسية لـ ScrapegraphAI.
  • Openai: سوف نستخدم نموذج GPT-4o-mini الخاص بـ OpenAI للكشط.
  • python-dotenv: سيسمح لنا ذلك بتحميل متغيرات البيئة بشكل آمن مثل مفاتيح واجهة برمجة التطبيقات من ملف .env.

بمجرد تثبيت هذه، تأكد من أن مفتاح OpenAI API الخاص بك جاهز. قم بتخزينه في ملف .env للحفاظ على أمان بيانات اعتمادك:

OPENAI_APIKEY=مفتاحك_openai_API_API_key

مثال على الكود: كشط البيانات من الكتب لكشطها

لنفترض أننا نريد استخراج معلومات عن جميع الكتب الموجودة على "كتب للكشط"، بما في ذلك

  • اسم الكتاب
  • السعر
  • التوفر
  • المراجعات

إليك مثال برمجي باستخدام خط أنابيب SmartScraperGraphGraph من ScrapegraphAI:

import os
from dotenv import load_dotenv
from scrapegraphai.graphs import SmartScraperGraph

# Load the OpenAI API key from .env file
load_dotenv()
openai_key = os.getenv("OPENAI_APIKEY")

# Define configuration for the LLM
graph_config = {
   "llm": {
      "api_key": openai_key,
      "model": "openai/gpt-4o-mini",
   },
}

prompt = """
Extract all the books from this website including
- Book Name
- Price
- Availability 
- Reviews
"""

# Create the SmartScraperGraph instance
smart_scraper_graph = SmartScraperGraph(
   prompt=prompt,
   source="https://books.toscrape.com/",
   config=graph_config
)


if __name__ == '__main__':
   result = smart_scraper_graph.run()
   print(result)

شرح المدونة:

  • تكوين LLM: نقوم بتهيئة ScrapegraphAI لاستخدام OpenAI GPT-4o-mini النموذج من خلال توفير مفتاح API وتحديد اسم النموذج.
  • موجه: يوجه الموجه الذي يحدده المستخدم الذكاء الاصطناعي لاستخراج المعلومات من الموقع الإلكتروني عن كل كتاب، بما في ذلك الاسم والسعر والتوافر والمراجعات.
  • عنوان URL المصدر: نقدم عنوان URL للموقع الإلكتروني الذي نريد كشطه.
  • تشغيل المكشطة: الـ تشغيل() تبدأ عملية الكشط، وتُطبع النتيجة كقائمة من القواميس، يحتوي كل منها على تفاصيل عن كتاب ما.

مثال على المخرجات

إليك مثال لما قد يبدو عليه الإخراج:

{'Book Name': 'A Light in the Attic', 'Price': '£51.77', 'Availability': 'In stock', 'Reviews': 'NA'},
{'Book Name': 'Tipping the Velvet', 'Price': '£53.74', 'Availability': 'In stock', 'Reviews': 'NA'},
{'Book Name': 'Soumission', 'Price': '£50.10', 'Availability': 'In stock', 'Reviews': 'NA'},
{'Book Name': 'Sharp Objects', 'Price': '£47.82', 'Availability': 'In stock', 'Reviews': 'NA'},
# ... more books ...

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

تكامل الوكيل

عند الكشط على نطاق واسع أو استهداف مواقع الويب بإجراءات مكافحة الكشط، يصبح دمج البروكسيات أمرًا ضروريًا لتجنب حظر بروتوكول الإنترنت (IP) أو اختبارات CAPTCHA أو تحديد المعدل. لا يوفر استخدام البروكسيات إخفاء الهوية فحسب، بل يضمن أيضًا إمكانية كشط كميات كبيرة من البيانات دون انقطاع.

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

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

لنرى الآن كيف يتم دمج الوكلاء مع ScrapegraphAI:

from dotenv import load_dotenv
import os
from scrapegraphai.graphs import SmartScraperGraph

# Load the OpenAI API key from .env file
load_dotenv()
openai_key = os.getenv("OPENAI_APIKEY")

# Define the configuration with proxy integration
graph_config = {
   "llm": {
      "api_key": openai_key,
      "model": "openai/gpt-4o-mini",
   },
   "loader_kwargs": {
      "proxy": {
         "server": "rp.proxyscrape.com:6060",
         "username": "your_username",
         "password": "your_password",
      },
   },
}

prompt = """
Extract all the books from this website including
- Book Name
- Price
- Availability 
- Reviews
"""

# Create the SmartScraperGraph instance
smart_scraper_graph = SmartScraperGraph(
   prompt=prompt,
   source="https://books.toscrape.com/",
   config=graph_config
)

# Run the scraper and print the result
if __name__ == '__main__':
   result = smart_scraper_graph.run()
   print(result)

شرح التكامل بالوكالة:

  • تهيئة الوكيل: يتم تعيين الوكيل ضمن لودر_كوارغز في مفتاح الرسم البياني_كونفيج. هنا، يمكنك تحديد عنوان الخادم الوكيل واسم المستخدم وكلمة المرور.
  • يضمن ذلك توجيه جميع الطلبات التي يقدمها ScrapegraphAI من خلال الخادم الوكيل المحدد، مما يساعد في تجاوز القيود أو تجنب حظر IP على الموقع الإلكتروني المستهدف.

الخاتمة

في هذه المدونة، استكشفنا قوة ScrapegraphAI، وهي أداة حديثة لكشط الويب تستخدم نماذج لغوية كبيرة (LLMs) لاستخراج البيانات المنظمة من المواقع الإلكترونية بذكاء. وقد استعرضنا ميزاته الرئيسية، بما في ذلك خطوط أنابيب الكشط المختلفة مثل SmartScraperGraph، وقدمنا مثالاً عمليًا لكشط بيانات الكتب من موقع إلكتروني باستخدام نموذج GPT-4o-mini الخاص ب OpenAI.

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

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