الانتقال إلى المحتوى الرئيسي

SpiderTool

الوصف

Spider هي الأسرع أداة استخراج وزحف مفتوحة المصدر تُرجع بيانات جاهزة لـ LLM. تحوّل أي موقع إلى HTML نقي أو markdown أو بيانات وصفية أو نص مع تمكين الزحف بإجراءات مخصصة باستخدام الذكاء الاصطناعي.

التثبيت

لاستخدام SpiderTool تحتاج إلى تنزيل Spider SDK وحزمة crewai[tools] SDK أيضاً:
pip install spider-client 'crewai[tools]'

مثال

يوضح هذا المثال كيفية استخدام SpiderTool لتمكين وكيلك من استخراج المواقع وزحفها. البيانات المُرجعة من Spider API جاهزة بالفعل لـ LLM، لذا لا حاجة لأي تنظيف.
Code
from crewai_tools import SpiderTool

def main():
    spider_tool = SpiderTool()

    searcher = Agent(
        role="Web Research Expert",
        goal="Find related information from specific URL's",
        backstory="An expert web researcher that uses the web extremely well",
        tools=[spider_tool],
        verbose=True,
    )

    return_metadata = Task(
        description="Scrape https://spider.cloud with a limit of 1 and enable metadata",
        expected_output="Metadata and 10 word summary of spider.cloud",
        agent=searcher
    )

    crew = Crew(
        agents=[searcher],
        tasks=[
            return_metadata,
        ],
        verbose=2
    )

    crew.kickoff()

if __name__ == "__main__":
    main()

المعاملات

المعاملالنوعالوصف
api_keystringيحدد مفتاح Spider API. إذا لم يتم تحديده، يبحث عن SPIDER_API_KEY في متغيرات البيئة.
paramsobjectمعاملات اختيارية للطلب. الافتراضي هو {"return_format": "markdown"} لتحسين المحتوى لـ LLMs.
requeststringنوع الطلب المراد تنفيذه (http، chrome، smart). smart يستخدم HTTP افتراضياً، مع التبديل إلى تصيير JavaScript عند الحاجة.
limitintالحد الأقصى لعدد الصفحات للزحف لكل موقع. عيّن إلى 0 أو اتركه للزحف غير المحدود.
depthintالحد الأقصى لعمق الزحف. عيّن إلى 0 بدون حد.
cacheboolيفعّل التخزين المؤقت لـ HTTP لتسريع التشغيلات المتكررة. الافتراضي هو true.
budgetobjectيعيّن حدوداً على أساس المسار للصفحات المزحوفة، مثل {"*":1} لصفحة الجذر فقط.
localestringاللغة المحلية للطلب، مثل en-US.
cookiesstringملفات تعريف ارتباط HTTP للطلب.
stealthboolيفعّل وضع التخفي لطلبات Chrome لتجنب الاكتشاف. الافتراضي هو true.
headersobjectرؤوس HTTP كخريطة من أزواج مفتاح-قيمة لجميع الطلبات.
metadataboolيخزّن البيانات الوصفية حول الصفحات والمحتوى، مما يساعد على التوافق مع الذكاء الاصطناعي. الافتراضي هو false.
viewportobjectيعيّن أبعاد نافذة العرض لـ Chrome. الافتراضي هو 800x600.
encodingstringيحدد نوع الترميز، مثل UTF-8، SHIFT_JIS.
subdomainsboolيتضمن النطاقات الفرعية في الزحف. الافتراضي هو false.
user_agentstringوكيل مستخدم HTTP مخصص. الافتراضي هو وكيل عشوائي.
store_databoolيفعّل تخزين البيانات للطلب. يتجاوز storageless عند التعيين. الافتراضي هو false.
gpt_configobjectيسمح للذكاء الاصطناعي بتوليد إجراءات الزحف، مع خطوات تسلسل اختيارية عبر مصفوفة لـ "prompt".
fingerprintboolيفعّل البصمة المتقدمة لـ Chrome.
storagelessboolيمنع جميع عمليات تخزين البيانات، بما في ذلك تضمينات الذكاء الاصطناعي. الافتراضي هو false.
readabilityboolيُعالج المحتوى مسبقاً للقراءة عبر أداة القراءة من Mozilla. يحسّن المحتوى لـ LLMs.
return_formatstringالتنسيق لإرجاع البيانات: markdown، raw، text، html2text. استخدم raw لتنسيق الصفحة الافتراضي.
proxy_enabledboolيفعّل بروكسيات عالية الأداء لتجنب الحظر على مستوى الشبكة.
query_selectorstringمحدد CSS لاستخراج المحتوى من الترميز.
full_resourcesboolيُنزّل جميع الموارد المرتبطة بالموقع.
request_timeoutintالمهلة بالثواني للطلبات (5-60). الافتراضي هو 30.
run_in_backgroundboolيشغّل الطلب في الخلفية، مفيد لتخزين البيانات وتشغيل زحف لوحة التحكم. لا تأثير إذا تم تعيين storageless.