این مقاله درباره

کرالر

کرالر چیست و web crawler چیست؟ لینک‌ها چگونه خزش می‌شوند و تفاوت کرالر با اسکرپر چیست؟ راهنمای زمان‌بندی و محدوده خزیدن مسئولانه.

کرالر چیست؟ تفاوت کرالر و اسکرپر در خزیدن وب (web crawler چیست)

نوشته شده توسط محمد اصل زنجانی

4.9از ۵(12 امتیاز)

کرالر یا خزنده وب، برنامه‌ای است که از یک یا چند URL شروع می‌کند، لینک‌های قابل‌دسترسی را طبق قواعد مشخص دنبال می‌کند و درباره صفحه‌های دیده‌شده اطلاعات ثبت می‌کند. کرالر می‌تواند فقط URLها و وضعیت پاسخ را فهرست کند یا صفحه‌های مرتبط با یک موضوع را برای مرحله بعد آماده سازد. در روبینش، خزیدن وب به‌عنوان بخشی از یک فرایند مسئولانه دیده می‌شود: با محدوده روشن، سرعت کنترل‌شده و احترام به robots.txt و شرایط استفاده از منبع.

بسیاری از جستجوهای فارسی دقیقاً با عبارت web crawler چیست هم مطرح می‌شوند؛ همان مفهوم کرالر یا خزنده وب است که در انگلیسی Web Crawler (و گاهی spider یا bot) نامیده می‌شود. اگر با این کوئری وارد این صفحه شده‌اید، پاسخ کوتاه این است: web crawler نرم‌افزاری است که لینک‌های وب را به‌صورت سیستماتیک دنبال می‌کند تا صفحه‌ها را کشف، دریافت و برای ایندکس یا پردازش بعدی آماده کند — چه در موتور جستجو مثل Googlebot، چه در پروژه‌های محدود کسب‌وکار.

Crawling is the process by which Googlebot discovers new and updated pages to be added to the Google index. Google uses a huge set of computers to fetch (download) billions of pages on the web.

منبع: Google Search Central — Overview of Google crawlers

کرالر چیست و چه کاری انجام می‌دهد؟

وب‌سایت‌ها معمولاً یک نقشه ساده و خطی ندارند. یک صفحه محصول به دسته‌ها، نسخه‌های دیگر محصول، صفحه‌های راهنما و لینک‌های قدیمی وصل است. کرالر این ارتباط‌ها را بررسی می‌کند تا مشخص شود چه URLهایی در محدوده تعریف‌شده وجود دارد و چگونه به هم متصل‌اند. نتیجه می‌تواند فهرستی از آدرس‌ها، عنوان صفحه، وضعیت HTTP، لینک مرجع، زمان بازدید یا نشانه‌هایی از محتوای تکراری باشد.

خزنده وب با موتور جست‌وجو تفاوت دارد. موتور جست‌وجو زیرساخت گسترده‌ای برای کشف، ذخیره، رتبه‌بندی و ارائه نتیجه به میلیاردها کاربر دارد؛ اما کرالر یک پروژه کسب‌وکار معمولاً برای دامنه، بخش یا مجموعه‌ای مشخص از URLها ساخته و محدود می‌شود. هدف، پوشش نامحدود اینترنت نیست؛ جمع‌آوری اطلاعات لازم برای یک تصمیم یا فرایند مشخص است.

پس اگر بپرسید web crawler چیست، پاسخ همان تعریف کرالر است با واژگان انگلیسی رایج در مستندات فنی: برنامه‌ای که از seed URL شروع می‌کند، لینک‌ها را استخراج می‌کند، صف بازدید می‌سازد و طبق سیاست (دامنه، عمق، نرخ درخواست، robots.txt) پیش می‌رود. تفاوت اصلی بین «web crawler موتور جستجو» و «web crawler پروژه شما» در مقیاس و هدف است، نه در ایدهٔ کلی خزیدن.

تفاوت کرالر و اسکرپر چیست؟

مرز این دو ابزار در عمل به هدف برمی‌گردد. کرالر بیشتر پاسخ می‌دهد «کدام صفحه‌ها را باید ببینیم و چه رابطه‌ای با هم دارند؟»؛ درحالی‌که اسکرپر پاسخ می‌دهد «از هر صفحه چه فیلد مشخصی را استخراج کنیم؟». کرالر به کشف و پیمایش لینک‌ها نزدیک است و اسکرپر به تبدیل بخش‌های صفحه به داده ساخت‌یافته نزدیک‌تر.

برای مثال، در یک فروشگاه بزرگ ابتدا کرالر می‌تواند صفحه‌های دسته و محصول را با کنترل عمق لینک پیدا کند. سپس اسکرپر از همان فهرست تأییدشده، نام کالا، قیمت درج‌شده و وضعیت موجودی را به جدول تبدیل کند. مقاله وب اسکرپینگ و خروجی CSV یا JSON درباره بخش استخراج و تحویل داده جزئیات بیشتری دارد. در بسیاری از پروژه‌ها هر دو در کنار هم به‌کار می‌روند، ولی نباید نقش یا دامنه آن‌ها بدون توافق مشخص شود.

  • کرالر: یافتن URLها، ثبت مسیر لینک و کنترل محدوده خزیدن
  • اسکرپر: انتخاب فیلد، خواندن مقدار و ساخت رکورد داده
  • زمان‌بند: اجرای دوره‌ای، ثبت تغییرات و مدیریت خطاهای قابل انتظار
  • کنترل کیفیت: تشخیص URLهای تکراری، داده ناقص و تغییر ساختار صفحه

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

محدوده خزیدن را چطور تعیین کنیم؟

محدوده روشن، هم هزینه را کنترل می‌کند و هم رفتار خزنده را قابل دفاع می‌سازد. می‌توان دامنه، زیردامنه، پیشوند مسیر، الگوی URL، حداکثر عمق لینک و تعداد صفحه را از ابتدا تعیین کرد. صفحه‌های ورود، پنل کاربری، مسیرهای دارای داده شخصی، URLهای تولیدشده با فیلترهای بی‌پایان و بخش‌های منع‌شده باید از محدوده کنار گذاشته شوند.

robots.txt راهنمای مهمی برای مسیرهای قابل خزیدن است، اما تنها معیار نیست. شرایط استفاده سایت، مجوز مالک داده و نوع اطلاعات نیز باید بررسی شود. نرخ درخواست باید با تأخیر مناسب و بدون دورزدن سازوکارهای حفاظتی تنظیم شود؛ اگر منبع دسترسی رسمی یا API ارائه می‌دهد، مسیر رسمی معمولاً انتخاب مناسب‌تری است.

زمان‌بندی کرالر و به‌روزرسانی داده

همه داده‌ها با یک سرعت تغییر نمی‌کنند. فهرست مقاله‌ها ممکن است ماهانه کافی باشد، در حالی که قیمت یا موجودی برخی کالاها به پایش نزدیک‌تر نیاز دارد. انتخاب زمان‌بندی باید از ارزش تصمیم و نوسان واقعی داده بیاید، نه از این تصور که هر اجرای بیشتر بهتر است. اجرای بی‌نیاز، هم داده تکراری تولید می‌کند و هم فشار غیرضروری بر منبع وارد می‌سازد.

برای زمان‌بندی مؤثر، تاریخ آخرین تغییر، زمان آخرین خزیدن موفق، خطاها و اولویت URL ثبت می‌شود. سپس می‌توان صفحه‌های پرنوسان را با فاصله کوتاه‌تر و صفحه‌های پایدار را با فاصله طولانی‌تر بررسی کرد. اگر تمرکز پروژه روی تغییر قیمت‌های عمومی است، راهنمای اسکرپ و مانیتورینگ قیمت رقبا یک الگوی کاربردی برای هشدار و گزارش تغییر ارائه می‌کند.

  1. ابتدا نمونه‌ای محدود از URLها را بررسی و نرخ تغییر را اندازه‌گیری کنید.
  2. برای هر گروه صفحه، بازه بازبینی و سقف درخواست معقول تعریف کنید.
  3. موفقیت، خطای موقت و تغییر محتوا را جداگانه ثبت کنید.
  4. هشدار را فقط برای تغییرهای مهم و قابل اقدام تنظیم کنید.
  5. زمان‌بندی را با بازخورد تیم مصرف‌کننده داده بازبینی کنید.

خروجی کرالر چه اطلاعاتی دارد؟

خروجی مناسب به هدف پروژه وابسته است، اما معمولاً URL نهایی، URL ارجاع‌دهنده، عنوان، وضعیت پاسخ، نوع محتوا، زمان مشاهده و عمق لینک مفید هستند. در تحلیل معماری سایت، می‌توان صفحه‌های یتیم، زنجیره‌های ریدایرکت یا لینک‌های شکسته را نیز گزارش کرد. در جمع‌آوری داده بازار، فهرست URLهای معتبر می‌تواند ورودی مرحله اسکرپ باشد.

یک گزارش خوب باید محدودیت‌ها را هم نشان دهد: صفحه‌ای که در زمان اجرا پاسخ نداده، URLی که به‌خاطر قواعد پروژه کنار گذاشته شده یا بخش‌هایی که نیازمند دسترسی رسمی‌اند. شفاف‌بودن این موارد بهتر از کامل نشان دادن یک گزارش ناقص است. تیم روبینش در پروژه‌های اسکرپ داده می‌تواند قالب خروجی، بازه اجرا و کنترل‌های کیفیت را متناسب با مصرف نهایی داده طراحی کند.

چه زمانی به کرالر اختصاصی نیاز دارید؟

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

برای شروع، URLهای نمونه، هدف داده، بازه به‌روزرسانی و هر مجوز یا محدودیت شناخته‌شده را آماده کنید. از تماس با روبینش می‌توانید درباره امکان‌سنجی فنی پروژه گفت‌وگو کنید. این رویکرد عملی از تجربه‌های محمد اصله زنجانی در تبدیل نیاز کسب‌وکار به فرایند داده‌محور استفاده می‌کند.

سؤالات متداول

کرالر چیست؟

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

web crawler چیست؟

Web Crawler همان کرالر یا خزنده وب است: نرم‌افزاری که از URLهای شروع، لینک‌های مجاز را دنبال می‌کند و صفحه‌ها را برای کشف، فهرست یا پردازش بعدی دریافت می‌کند. در موتور جستجو مقیاس جهانی دارد؛ در پروژه کسب‌وکار معمولاً به دامنه و قواعد مشخص محدود می‌شود.

تفاوت کرالر و اسکرپر چیست؟

کرالر بیشتر برای کشف URLها و مسیر ارتباط صفحه‌ها استفاده می‌شود. اسکرپر از صفحه‌های انتخاب‌شده، فیلدهای مشخص مانند نام، قیمت یا ویژگی محصول را به داده ساخت‌یافته تبدیل می‌کند.

کرالر چگونه لینک‌ها را پیدا می‌کند؟

خزنده صفحه شروع را می‌خواند، لینک‌های آن را استخراج و URLهای مجاز را در صف بررسی قرار می‌دهد. قواعدی مانند دامنه، مسیر، عمق لینک و سقف صفحه مانع خروج از محدوده پروژه می‌شوند.

هر چند وقت یک بار باید کرالر اجرا شود؟

بازه اجرا به نرخ تغییر داده و ارزش تصمیم شما بستگی دارد. صفحه‌های پرنوسان می‌توانند زودتر بازبینی شوند، اما اجرای بی‌نیاز هم داده تکراری می‌سازد و هم فشار اضافی بر منبع وارد می‌کند.

آیا کرالر باید robots.txt را رعایت کند؟

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