Crawl4AI এবং Firecrawl LLM পাইপলাইনে ওয়েব ডেটা খাওয়ানোর ডিফল্ট উপায় হয়ে উঠেছে — এগুলো ক্রল করে, রেন্ডার করে এবং পরিচ্ছন্ন Markdown ফেরত দেয় যা আপনার মডেল আসলেই ব্যবহার করতে পারে। তারপর আপনি এগুলোকে একটি আসল টার্গেটের দিকে নির্দেশ করেন এবং আবিষ্কার করেন যা প্রতিটি স্ক্র্যাপার অবশেষে শেখে: এক্সট্র্যাকশন স্তরটি কখনোই কঠিন অংশ ছিল না। কঠিন অংশটি হলো আপনার ক্রলার একটি ডেটাসেন্টার IP থেকে চলে, এবং ওয়েব সেটি দেখতে পায়।
এই গাইডটি উভয় টুলের জন্য কার্যকর প্রক্সি কনফিগারেশন দেখায় — সেলফ-হোস্টেড Crawl4AI এবং Firecrawl-এর উভয় মোড — প্লাস সেই সেশন কৌশল যা RAG ইনজেশন কাজগুলোকে পৃষ্ঠা ৫০-এ মরতে দেয় না। এটি আমাদের AI agent proxy guide এবং browser-use guide-কে ক্রলিং ফ্রেমওয়ার্কে সম্প্রসারিত করে।
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:
# 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
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 ক্রেডিটের একাধিক গুণে বিল হয়, এবং আপনি দেশ নিখুঁতভাবে পিন করতে বা কলের মধ্যে sticky সেশন ধরে রাখতে পারবেন না। মাঝে মাঝের পৃষ্ঠার জন্য ঠিক আছে; ইনজেশন ভলিউমে ব্যয়বহুল ও অনির্দিষ্ট।
সেলফ-হোস্টেড Firecrawl: আপনি environment variable-এর মাধ্যমে আপনার নিজের প্রক্সি সরবরাহ করেন, পূর্ণ নিয়ন্ত্রণসহ:
# .env for self-hosted Firecrawl
PROXY_SERVER=http://us.jibaoproxy.com:1000
PROXY_USERNAME=USERNAME
PROXY_PASSWORD=PASSWORD
সেলফ-হোস্টেড + আপনার নিজের রেসিডেনশিয়াল গেটওয়ে হলো খরচ-যুক্তিসঙ্গত সেটআপ যখন আপনি স্কেলে ইনজেস্ট করছেন: আপনি stealth মাল্টিপ্লায়ারসহ প্রতি-পৃষ্ঠা ক্রেডিটের বদলে ব্যান্ডউইথের জন্য প্রতি-GB অর্থ দেন।
semaphore_count / delay অপশন এর জন্যই আছে — প্রতি সাইটে ২–৪টি কনকারেন্ট পৃষ্ঠা যথেষ্ট; বরং সাইটগুলোর মধ্যে সমান্তরালতা ছড়িয়ে দিন।ETag/Last-Modified সম্মান করুন।| সেটআপ | আপনি যার জন্য অর্থ দেন | সেরা যখন |
|---|---|---|
| Firecrawl cloud, stealth proxy | প্রতি-পৃষ্ঠা ক্রেডিট × stealth মাল্টিপ্লায়ার | কম ভলিউম, শূন্য ops |
| সেলফ-হোস্টেড Firecrawl + রেসিডেনশিয়াল GB | শুধু ব্যান্ডউইথ (~$10/GB) | স্থির ইনজেশন ভলিউম |
| Crawl4AI + রেসিডেনশিয়াল GB | শুধু ব্যান্ডউইথ, পূর্ণ নিয়ন্ত্রণ | কাস্টম পাইপলাইন, গভীর ক্রল |
একটি সাধারণ টেক্সট-ভারী পৃষ্ঠা একটি প্রক্সির মধ্য দিয়ে ১০০–৩০০ KB খরচ করে — প্রতি GB-তে মোটামুটি ৩,০০০–১০,০০০ পৃষ্ঠা। ব্লক-অ্যান্ড-রিট্রাই লুপগুলোই বাজেট উড়িয়ে দেয়, যা ভলিউম স্কেল করার আগে ডিটেকশন ঠিক করার আরেকটি কারণ।
BrowserConfig-এ proxy_config; প্রতি সাইটে sticky পরিচয়, সাইটের মধ্যে রোটেট।proxy: "stealth" প্যারাম, ভলিউমে ব্যয়বহুল; সেলফ-হোস্টেড: env var-এর মাধ্যমে আপনার নিজের গেটওয়ে।রেসিডেনশিয়াল এক্সিট, sticky সেশন, প্রতি-GB মূল্য — 500MB ফ্রি ট্রাফিক, কোনো কার্ড লাগবে না।
Start Free Trialনতুন ব্যবহারকারীরা নিবন্ধনের সময় 500MB পান, সাথে প্রথম রিচার্জে বোনাস। সীমিত সময়ের অফার।