Crawl4AI و Firecrawl به روش پیشفرض تغذیهٔ دادهٔ وب به پایپلاینهای LLM تبدیل شدهاند — کرال میکنند، رندر میکنند و Markdown تمیزی به شما برمیگردانند که مدلتان واقعاً بتواند از آن استفاده کند. بعد آنها را به یک هدف واقعی نشانه میروید و چیزی را کشف میکنید که هر اسکرپری بالاخره یاد میگیرد: لایهٔ استخراج هیچوقت بخش سخت ماجرا نبود. بخش سخت این است که کرالر شما از یک IP دیتاسنتر اجرا میشود و وب میتواند آن را ببیند.
این راهنما پیکربندی کاربردی پروکسی برای هر دو ابزار را نشان میدهد — Crawl4AI سلفهاست و هر دو حالت Firecrawl — به علاوهٔ استراتژی سشنی که جلوی مردن کارهای دریافت داده برای RAG در صفحهٔ ۵۰ را میگیرد. این راهنما راهنمای پروکسی ایجنت هوش مصنوعی و راهنمای 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 خروجی مشترک داشته باشند (یک انسان بین صفحهٔ ۳ و صفحهٔ ۴ شهرش را عوض نمیکند):
def crawler_for(site_id: str) -> BrowserConfig:
# سشن استیکی به ازای هر سایت: کوکیها + IP با هم حرکت میکنند
return BrowserConfig(
headless=True,
proxy_config={
"server": "us.jibaoproxy.com:913",
"username": f"USERNAME-session-{site_id}",
"password": "PASSWORD",
},
)
# سایت A از خروجی A کرال میشود، سایت B از خروجی B، بهصورت موازی
Cloud 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 با ضریبی از اعتبارهای basic محاسبه میشوند، و نمیتوانید کشورها را دقیق پین کنید یا سشنهای استیکی را در طول فراخوانیها نگه دارید. برای صفحات گاهبهگاه مناسب است؛ در حجم دریافت داده گران و نادقیق.
Firecrawl سلفهاست: پروکسی خودتان را از طریق متغیرهای محیطی تأمین میکنید، با کنترل کامل:
# فایل .env برای Firecrawl سلفهاست
PROXY_SERVER=http://us.jibaoproxy.com:1000
PROXY_USERNAME=USERNAME
PROXY_PASSWORD=PASSWORD
سلفهاست + گیتوی مسکونی خودتان وقتی در مقیاس دریافت داده میکنید راهکار منطقی از نظر هزینه است: به جای اعتبار به ازای هر صفحه با ضریب stealth، برای پهنای باند به ازای هر گیگابایت پول میدهید.
semaphore_count / تأخیر Crawl4AI برای همین وجود دارند — ۲ تا ۴ صفحهٔ همزمان به ازای هر سایت کافی است؛ به جایش موازیسازی را در میان سایتها پخش کنید.ETag/Last-Modified را رعایت کنید.| راهکار | برای چه چیزی پول میدهید | بهترین زمان |
|---|---|---|
| Firecrawl ابری، پروکسی stealth | اعتبار به ازای هر صفحه × ضریب stealth | حجم پایین، بدون عملیات |
| Firecrawl سلفهاست + گیگابایت مسکونی | فقط پهنای باند (~۱۰ دلار/گیگابایت) | حجم دریافت داده پایدار |
| Crawl4AI + گیگابایت مسکونی | فقط پهنای باند، کنترل کامل | پایپلاینهای سفارشی، کرالهای عمیق |
یک صفحهٔ معمولی پرمتن از طریق پروکسی ۱۰۰ تا ۳۰۰ کیلوبایت هزینه دارد — تقریباً ۳٬۰۰۰ تا ۱۰٬۰۰۰ صفحه به ازای هر گیگابایت. حلقههای بلاک-و-تلاش-مجدد آن چیزی هستند که بودجه را میترکانند، که دلیل دیگری است برای اینکه تشخیص را قبل از مقیاسدهی حجم رفع کنید.
proxy_config در BrowserConfig؛ هویت استیکی به ازای هر سایت، بین سایتها بچرخانید.proxy: "stealth"، در حجم بالا پرهزینه؛ سلفهاست: گیتوی خودتان از طریق متغیرهای محیطی.خروجیهای مسکونی، سشنهای استیکی، قیمتگذاری به ازای هر گیگابایت — ۵ دلار اعتبار رایگان، بدون نیاز به کارت.
شروع تست رایگانکاربران جدید با ثبتنام 500MB هدیه میگیرند، بهعلاوه بونوس اولین شارژ. پیشنهاد محدود.