Crawler چیست؟

کرولر چیست، وب کرولر، ربات خزنده، crawler آموزش، Web Crawler 1404/9/17
نویسنده: مدرس بهمن آبادی

Crawler» چیست؟

وب کرالر web Crawler

Crawler (یا Web Crawler / Web Scraper) یک برنامه است که:

  1. وارد یک صفحهٔ وب می‌شود

  2. محتوای صفحه (HTML) را دریافت می‌کند

  3. داده‌های موردنظر را از آن استخراج می‌کند

  4. به لینک‌های دیگر سر می‌زند

  5. این فرآیند را تکرار می‌کند (در صورت نیاز)

به زبان ساده:
Crawler یک ربات است که می‌تواند صفحات وب را بخواند، بفهمد، و اطلاعات مفید از آن بیرون بکشد.

عملکرد Crawler به‌صورت مرحله‌به‌مرحله

۱) دریافت محتوا (Fetching)

Crawler ابتدا آدرس یک صفحه (URL) را می‌گیرد و محتوای HTML آن را مثل یک مرورگر دریافت می‌کند.

GET https://example.com

۲) تحلیل HTML (Parsing)

برنامه کد HTML را خط به خط می‌خواند و ساختار صفحه را استخراج می‌کند:

  • Title

  • تصاویر

  • لینک‌ها

  • بخش محتوا

  • جدول‌ها

  • قیمت‌ها

۳) استخراج داده‌ها (Extracting)

از داخل HTML اطلاعاتی که لازم دارد را برمی‌دارد.
مثلاً در یک صفحهٔ تور مسافرتی:

  • نام تور

  • قیمت

  • شهر مقصد

  • مدت سفر

  • پیشنهاد ویژه

۴) ذخیره داده‌ها

پس از استخراج، Crawler داده را در یک ساختار قابل‌اعتماد ذخیره می‌کند:

  • List<T>

  • فایل JSON

  • فایل CSV

  • یا حتی دیتابیس (در نسخه‌های حرفه‌ای)

۵) جستجوی لینک و ادامهٔ Crawling

Crawler داخل صفحه لینک‌ها را پیدا می‌کند:

  • لینک به صفحهٔ بعدی

  • لینک به تورهای دیگر

  • لینک دسته‌بندی‌ها

و دوباره همان کارها را روی صفحات جدید انجام می‌دهد.

۶) جلوگیری از حلقه و اضافه‌کاری

Crawler باید لیست صفحاتی که قبلاً دیده را نگه دارد
تا بی‌نهایت در یک سایت نچرخد:

VisitedUrls = Set<string>

خروجی نهایی Crawler چیست؟

بسته به هدف پروژه:

  • لیست تورها (name, price, city)

  • لیست مقالات

  • لیست محصولات

  • قیمت‌ها برای مقایسه

  • ساخت یک JSON بزرگ

  • ساخت sitemap

  • ذخیرهٔ لینک‌ها

چرا Crawler جذاب است؟

چون حس «ربات‌سازی» و «جمع‌کردن داده‌ها از اینترنت» دارد.

در پروژهٔ آموزشی معمولاً خروجی این است:

[
  {
    "City": "Paris",
    "Category": "Cultural",
    "Title": "Paris Tour 2025",
    "Price": 1200
  }
]

سپس می‌توان این JSON را به پروژهٔ دیگر داد.

واقعیت این است که نوشتن چنین Crawler ساده‌ای، یکی از ابتدایی‌ترین و ساده‌ترین بخش‌هایی است که در مسیر برنامه‌نویسی یاد می‌گیرید با شرکت در دورهٔ جامع برنامه‌نویسی وب مهندس بهمن آبادی باعث می‌شود این مفاهیم را بسیار عمیق‌تر، اصولی‌تر و حرفه‌ای‌تر یاد بگیرید.

در این دوره:

  • با معماری‌های استاندارد

  • Crawlerهای واقعی

  • API نویسی

  • دیتابیس و EF Core

  • پروژه‌های سازمانی

  • طراحی معماری لایه‌ای

  • و کار بر روی پروژه‌های بزرگ

آشنا می‌شوید.