لقد تطورت عملية كشط الويب من الاستخراج البسيط القائم على القواعد إلى تقنيات أكثر تقدمًا تعتمد على نماذج لغوية كبيرة (LLMs) لاستخراج البيانات المدركة للسياق. يحتل ScrapegraphAI موقع الصدارة في هذا التطور، مما يتيح تجريف الويب من خلال نماذج لغوية كبيرة مثل OpenAI و Gemini وحتى النماذج المحلية مثل Ollama. في هذه المدونة، سنتعمق في هذه المدونة في ماهية ScrapegraphAI، وكيف يعمل، وسنتعرف على مثال واقعي لكشط البيانات من موقع ويب مع تكامل الوكيل.
سنغطي في هذه المدونة ما يلي:
ScrapegraphAI هو إطار عمل قوي لكشط الويب (مفتوح المصدر) يستفيد من نماذج لغوية كبيرة لاستخراج البيانات من المواقع الإلكترونية بشكل ديناميكي. على عكس أدوات الكشط التقليدية التي تعتمد على محددات CSS الجامدة أو XPath، يستخدم ScrapegraphAI نماذج لغوية كبيرة لتفسير واستخراج البيانات المنظمة من مجموعة واسعة من المصادر، بما في ذلك صفحات الويب الديناميكية والملفات مثل ملفات PDF. ما عليك سوى تحديد المعلومات التي تبحث عنها، ودع ScrapeGraphAI يقوم بالمهمة الصعبة، مما يوفر خيارًا أكثر مرونة وأقل صيانة مقارنةً بأدوات الكشط التقليدية. تتمثل الميزة الرئيسية ل ScrapegraphAI في قدرته على السماح للمستخدمين بتحديد مخطط للبيانات التي يريدون استخراجها. يمكنك تحديد تنسيق منظم للمخرجات الخاصة بك، وسيقوم ScrapegraphAI بضبط البيانات المستخرجة لتتناسب مع هذا المخطط.
تتمثل إحدى الميزات البارزة في ScrapegraphAI في مرونته في اختيار LLMs، مع دعمه لما يلي
يقدم ScrapegraphAI العديد من خطوط أنابيب الكشط القياسية لتلبية الاحتياجات المختلفة. تتضمن بعض أكثرها شيوعًا ما يلي:
في القسم التالي، سنركز في القسم التالي على SmartScraperGraph، والذي يسمح بكشط صفحة واحدة بمجرد توفير موجه وعنوان URL المصدر.
للمتابعة، تحتاج إلى تثبيت بعض التبعيات. يمكنك القيام بذلك عن طريق تشغيل الأمر التالي:
بايب تثبيت سكرابجرافيفاي openai python-dotenv
تثبيت playwright
بمجرد تثبيت هذه، تأكد من أن مفتاح 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)
GPT-4o-mini
النموذج من خلال توفير مفتاح API وتحديد اسم النموذج.تشغيل()
تبدأ عملية الكشط، وتُطبع النتيجة كقائمة من القواميس، يحتوي كل منها على تفاصيل عن كتاب ما.إليك مثال لما قد يبدو عليه الإخراج:
{'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، وهي أداة حديثة لكشط الويب تستخدم نماذج لغوية كبيرة (LLMs) لاستخراج البيانات المنظمة من المواقع الإلكترونية بذكاء. وقد استعرضنا ميزاته الرئيسية، بما في ذلك خطوط أنابيب الكشط المختلفة مثل SmartScraperGraph، وقدمنا مثالاً عمليًا لكشط بيانات الكتب من موقع إلكتروني باستخدام نموذج GPT-4o-mini الخاص ب OpenAI.
كما أوضحنا أيضًا كيفية دمج البروكسيات، وخاصة البروكسيات السكنيةProxyScrape. البروكسيات ضرورية للبقاء مجهول الهوية، وتجاوز القيود، والحفاظ على الوصول إلى البيانات، خاصةً مع المواقع التي تستخدم أساليب مكافحة الاختراق مثل حظر بروتوكول الإنترنت أو حدود المعدل.
من خلال دمج البروكسيات السكنيةProxyScrape ، فإنك تضمن أن تكون أنشطة كشط الويب الخاصة بك أكثر كفاءة وأمانًا وقابلية للتطوير، حتى على المواقع الإلكترونية الأكثر تحديًا.