أصبح Crawl4AI وFirecrawl الطريقة الافتراضية لتغذية بيانات الويب إلى خطوط أنابيب نماذج اللغة الكبيرة (LLM) — فهما يزحفان، ويصيّران الصفحات، ويعيدان لك Markdown نظيفًا يمكن لنموذجك استخدامه فعلًا. ثم توجّههما نحو هدف حقيقي فتكتشف ما يتعلمه كل مستخرِج في النهاية: طبقة الاستخراج لم تكن قط هي الجزء الصعب. الجزء الصعب أن زاحفك يعمل من عنوان IP واحد لمركز بيانات، والويب يستطيع رؤيته.
يعرض هذا الدليل تهيئة بروكسي عملية لكلتا الأداتين — Crawl4AI ذاتي الاستضافة وكلا وضعَي Firecrawl — إضافة إلى استراتيجية الجلسات التي تمنع مهام استيعاب RAG من الموت عند الصفحة 50. وهو يوسّع دليلنا لبروكسي وكلاء الذكاء الاصطناعي ودليل browser-use ليشمل أطر الزحف.
يتلقّى Crawl4AI (مفتوح المصدر، ذاتي الاستضافة) البروكسيات على مستوى BrowserConfig — بروكسي واحد لكل نسخة زاحف:
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig
browser_cfg = BrowserConfig(
headless=True,
proxy_config={
"server": "us.jibaoproxy.com:913",
"username": "USERNAME",
"password": "PASSWORD",
},
)
async with AsyncWebCrawler(config=browser_cfg) as crawler:
result = await crawler.arun(
url="https://example.com/docs",
config=CrawlerRunConfig(),
)
print(result.markdown[:500])
في عمليات الزحف العميقة، دوّر الهوية لكل نسخة زاحف، لا لكل صفحة — فالصفحات ضمن زيارة موقع واحدة ينبغي أن تتشارك عنوان IP مخرج واحدًا (الإنسان لا يغيّر المدن بين الصفحة 3 والصفحة 4):
def crawler_for(site_id: str) -> BrowserConfig:
# Sticky session per site: cookies + IP move together
return BrowserConfig(
headless=True,
proxy_config={
"server": "us.jibaoproxy.com:913",
"username": f"USERNAME-session-{site_id}",
"password": "PASSWORD",
},
)
# site A crawled through exit A, site B through exit B, in parallel
واجهة API السحابية: التوكيل عبر البروكسي وسيط في الطلب — يوجّه Firecrawl عبر مجمّعاته الخاصة. أنت تتحكم في درجة الجودة، لا في عناوين IP:
from firecrawl import FirecrawlApp
app = FirecrawlApp(api_key="fc-YOUR-KEY")
result = app.scrape_url(
"https://example.com/pricing",
params={"proxy": "stealth"}, # basic | stealth | auto
)
المأخذ: طلبات الدرجة الخفية (stealth) تُحاسَب بأضعاف أرصدة الدرجة الأساسية، ولا يمكنك تثبيت الدول بدقّة أو الاحتفاظ بجلسات sticky عبر الاستدعاءات. مناسب للصفحات العَرَضية؛ ومكلِّف وغير دقيق عند حجوم الاستيعاب.
Firecrawl ذاتي الاستضافة: توفّر بروكسيك الخاص عبر متغيرات البيئة، مع تحكّم كامل:
# .env for self-hosted Firecrawl
PROXY_SERVER=http://us.jibaoproxy.com:1000
PROXY_USERNAME=USERNAME
PROXY_PASSWORD=PASSWORD
الاستضافة الذاتية + بوّابتك السكنية الخاصة هي الإعداد العقلاني من حيث التكلفة بمجرد أن تستوعب على نطاق واسع: إذ تدفع لكل جيجابايت من النطاق الترددي بدلًا من أرصدة لكل صفحة مع مضاعِف الدرجة الخفية.
semaphore_count / التأخير في Crawl4AI موجودة لهذا — من صفحتين إلى 4 صفحات متزامنة لكل موقع يكفي بوفرة؛ انشر التوازي عبر المواقع بدلًا من ذلك.ETag/Last-Modified حيث يسمح الإطار.| الإعداد | تدفع مقابل | الأفضل عندما |
|---|---|---|
| Firecrawl سحابي، بروكسي خفي | أرصدة لكل صفحة × مضاعِف الدرجة الخفية | حجم منخفض، صفر تشغيل |
| Firecrawl ذاتي الاستضافة + جيجابايت سكني | النطاق الترددي فقط (~10 دولارات/جيجابايت) | حجم استيعاب ثابت |
| Crawl4AI + جيجابايت سكني | النطاق الترددي فقط، تحكّم كامل | خطوط أنابيب مخصّصة، عمليات زحف عميقة |
الصفحة النموذجية الكثيفة النص تكلّف 100–300 كيلوبايت عبر بروكسي — أي نحو 3,000–10,000 صفحة لكل جيجابايت. حلقات الحظر-وإعادة-المحاولة هي ما يفجّر الميزانية، وهذا سبب آخر لإصلاح الكشف قبل توسيع الحجم.
proxy_config في BrowserConfig؛ هوية sticky لكل موقع، ودوّر بين المواقع.proxy: "stealth"، مكلّف عند الحجم؛ ذاتي الاستضافة: بوّابتك الخاصة عبر متغيرات البيئة.مخارج سكنية، وجلسات sticky، وتسعير لكل جيجابايت — 500 ميجابايت رصيد مجاني، بلا حاجة إلى بطاقة.
ابدأ التجربة المجانيةيحصل المستخدمون الجدد على 500MB عند التسجيل، بالإضافة إلى مكافأة على أول عملية شحن. العرض لفترة محدودة.