تفاوت های کراولر و اسپایدر در موتورهای جستجو

خزنده وب یا Web crawler به برنامه کامپیوتری می‌گویند که وب را بازدید کرده و اطلاعات آن را پردازش می‌کند. درباره خزنده وب بیشتر بدانید.

خزنده وب (WEB CRAWLER) چیست؟

خزنده وب که بیشتر ما آن را با عنوان  Web crawler می‌شناسیم به برنامه کامپیوتری اطلاق می‌شود که  World Wide Web (وب جهان گستر) را به صورت مرتب و سلسله مراتبی بازدید کرده و اطلاعات آن را مورد پردازش قرار می‌دهد. از Web crawler ها با عناوین دیگری مانند ants ،automatic indexers ،bots ،Web spiders و Web robots نیز یاد می‌شود.

کاربردهای خزنده وب

1. موتورهای جستجو

موتورهای جستجو و برخی از سایت‌ها دارای خزنده‌ها و یا روبات‌هایی هستند که برای گردآوری اطلاعات وب سایت‌ها و نیز بروز نگه داشتن اطلاعات مورد استفاده قرار می‌گیرند. مهم‌ترین کار بعد از گردآوری اطلاعات، ایندکس کردن آن‌ها برای پردازش سریع هنگام جستجو است. این خزنده‌ها معمولا در بازه‌های زمانی منظمی اطلاعات را بروز کرده و با نسخه‌های قبلی مقایسه می‌کنند.

2. مدیریت فنی وب سایت

مدیریت فنی وب سایت بخشی از کار این خزنده‌هاست که شامل یافتن لینک‌های شکسته(Broken Link) ، اعتبار سنجی (Validation) کدهای HTML، فایل‌های CSS و … می‌باشد.

3. جمع آوری اطلاعات خاص

کاربرد دیگر خزنده‌های وب جمع آوری اطلاعات خاصی مانند آدرس‌های ایمیل است. معمولا هدف از اینکار ارسال هرزنامه (spam) می‌باشد. برای جلوگیری از ثبت آدرس ایمیل توسط این خزنده‌ها، می‌توانید آدرس ایمیل خود را به صورت saeidREMOVEME AT جیمیل و یا موارد مشابه دیگر بنویسید.

نحوه کار خزنده وب

به صورت عمومی نحوه کار Web crawler ها به این صورت است که ابتدا لیستی از URL ها (آدرس های وب) که به عنوان seed شناخته می‌شوند را برای بازدید پردازش می‌کنند. هنگام پردازش این آدرس‌ها، لیست لینک‌ها و آدرس‌های موجود در صفحات آن‌ها را گردآوری کرده و به لیست ابتدایی اضافه می‌کنند. بقیه اطلاعات را نیز با توجه به نیاز و هدف خود ذخیره و پردازش می‌نمایند.

معماری خزنده وب

خزنده وب بخش اصلی و مرکزی هر موتور جستجویی را تشکیل می‌دهد. به همین جهت الگوریتم و معماری آن‌ها به شدت مخفی نگه داشته می‌شود. با این وجود معماری سطح بالای (High-level architecture) آن به شکل زیر می‌باشد:

 

خزنده وب - web crawler - موتورهای جستجو - ربات گوگل - سئو - seo

 

عادی کردن آدرس  (URL NORMALIZATION)

منظور از عادی کردن آدرس، یکی کردن آدرس‌هایی می‌باشد که دارای خروجی یکسانی هستند. هدف از این کار جلوگیری از جمع آوری اطلاعات یکسان از چندین URL است. URL normalization با نام  URL canonicalization نیز شناخته می‌شود که همان فرآیند تغییر آدرس برای استاندارد شدن می‌باشد.

مراحل فرایند عادی کردن آدرس

  • تبدیل آدرس به حروف کوچک

HTTP://www.Example.com/ → http://www.example.com/

  • افزودن / به آدرس در صورت نیاز

http://www.example.com → http://www.example.com/

  • حذف آدرس ایندکس دایرکتوری

http://www.example.com/default.asp → http://www.example.com/

http://www.example.com/a/index.html → http://www.example.com/a/

  • بزرگ کردن حروف encode شده یا همان حروف بعد از علامت ٪

http://www.example.com/a%c2%b1b → http://www.example.com/a%C2%B1b

  • حذف بخش زاید

http://www.example.com/bar.html#section1 → http://www.example.com/bar.html

  • حذف و تبدیل آی پی به دامنه

http://208.77.188.166/ → http://www.example.com/

  • اعمال محدودیت بر روی پروتکل‌ها مانند تبدیل https به  http

https://www.example.com/ → http://www.example.com/

  • حذف پورت پیش فرض )پورت ۸۰ به صورت پیش فرض برای http می‌باشد).

http://www.example.com:80/bar.html → http://www.example.com/bar.html

  • حذف / های تکراری

http://www.example.com:80/bar.html → http://www.example.com/bar.html

  • حذف . ها (dot-segments)

http://www.example.com/../a/b/../c/./d.html → http://www.example.com/a/c/d.html

  • حذف www از اول دامنه

http://www.example.com/ → http://example.com/

  • مرتب کردن متغییرهای صفحه فعال

http://www.example.com/display?lang=en&article=fred

→ http://www.example.com/display?article=fred=en

  • حذف متغییرهای اختیاری ازquery-string

http://www.example.com/display?id=123&fakefoo=fakebar

→ http://www.example.com/display?id=123

  • حذف متغییرهای پیش فرض ازquery-string

http://www.example.com/display?id=&sort=ascending

→ http://www.example.com/display

  • حذف علامت ? هنگامی که query-string خالی باشد

http://www.example.com/display? → http://www.example.com/display

  • استانداردکردن encoding کاراکترها

http://www.example.com/display?category=foo/bar+baz

→ http://www.example.com/display?category=foo%2Fbar%20baz

شناسایی خزنده وب

خزنده‌های وب معمولا با استفاده از فیلد User-agent داده HTTP request خود را معرفی می‌کنند. شما با استفاده از لاگ وب سرور خود می‌توانید لیست این Web crawler ها را مشاهده کنید. فیلدز User agent ممکن است شامل URL ای باشد که به سایت سازنده خزنده اشاره می‌کند.Spambot ها و سایر خزنده‌های مخرب معمولا فیلد User agent را به صورت غیر واقعی با اطلاعاتی مانند نام یک مرورگر پر می‌کنند.

فایل ROBOTS.TXT

این فایل برای دادن اطلاعات اولیه در زمینه وب سایت مورد پردازش به خزنده‌های وب استفاده می‌گردد. به عنوان مثال با این فایل می‌توانید دسترسی خزنده‌های وب به بعضی زیر شاخه‌ها را محدود کنید. دستورات زیر در فایل robots.txt از دسترسی خزنده‌ها به دایرکتوری /tmp/ جلوگیری می‌کند:

User-agent: *

Disallow: /tmp/

نکته: فایل robots.txt یک استاندارد می‌باشد. به همین جهت خزنده وب (معمولا خزنده مخرب) می‌تواند آن را نادیده بگیرد.

 لیست معروف‌ترین خزنده‌های وب را مشاهده می‌کنید:

  • Yahoo! Slurp
  • Msnbot
  • FAST Crawler
  • Googlebot
  • Methabot
  • arachnode.net
  • PolyBot
  • RBSE
  • WebCrawler
  • World Wide Web Worm
  • WebFountain
  • WebRACE

معروف ترین خزنده های متن باز

  • Aspseek
  • crawler4j
  • DataparkSearch
  • Ebot
  • GNU Wget
  • GRUB
  • Heritrix
  • ht://Dig
  • HTTrack
  • ICDL Crawler
  • mnoGoSearch
  • Nutch
    • Open Se

سورس خزنده وب به زبان جاوا

سایت sun در سال ۱۹۹۸ مقاله‌ای آموزشی با عنوان "Writing a Web Crawler in the Java Programming Languageرا ارائه داد. در آن مقاله ضمن توضیح دادن Web crawler سورس برنامه آن نیز در اختیار عموم قرار گرفت. البته این برنامه خیلی ساده و در مرحله ابتدایی می‌باشد. شما باید با توجه به نیازهای خود آن را تغییر داده و مورد استفاده قرار دهید./منبع:گروه تکنولوژی ستاره

***

در وبمستر گوگل شما می توانید تنظیماتی بر روی نحوه کار کراولرو فقط برای سایت خودتان انجام بدهید و خطاها و آمار کراول سایت خودتان را نیز ببینید
 کراولر  تعین می کند چند سرور وظیفه کراون  یک سایت را انجام دهند و هر سرور با چند خزنده
کراولر  سرعت هاست سایت شما از مجموع فعالیت های اسپایدرهایش محاسبه می کند
کراولر در طراحی بر عکس قسمت view به هوش مصنوعی متکی نیست بلکه کاملا متکی به آمار و ارقام است
مثلا اگر به یک سایت اسپمر برخورد کند نمی تواند اسپم بودن سایت را تشخیص دهد و تنها ظرف چند روز ممکن است صدها اسپایدر را مامور کراون آن کند  تا وقتیکه "ایندکسر" آن سایت را برای کراونر اسپم اعلام کند که بعد از آن تنها اسپایدر های بررسی فعال بودن صفحات به این سایت سرکشی می کند
کراولر طوری طراحی شده است که کمترین تعامل را با دیتابیس داشته باشد
اما اگر کاری کنید که  کراولر msn سایت شما را بزرگ تشخیص دهد با این کراولر هزاران اسپایدر به سایت شما سرازیر می کند طوریکه هاست تان را دچار مشکل می کند
وظایف کراولر 
* جمع آوری اطلاعات آماری و محتوایی از یک سایت
* تشخیص منطقه کاری سایت
* محاسبه سرعت هاستینگ سایت
* تعامل یک سایت با سایتهای دیگر

***

خزنده وب (Web Crawler) یک ربات اینترنتی است که به صورت سازماندهی شده به مرور و گردش در صفحات تارنمای جهانی وب می‌پردازد و اطلاعاتی را جمع‌آوری می‌کند که توسط موتور جستجو برای ایندکس کردن صفحات مورد استفاده قرار می‌گیرد. عنکبوت وب (Web Spider) نیز معادلی رایج برای این اصطلاح به شمار می‌رود.

خزنده‌ها در واقع یک نرم افزار هستند که معمولا می‌توانند از محتوای صفحات نسخه‌برداری کنند. از این نسخه‌ها برای ایندکس کردن صفحات استفاده می‌شود (در واقع هنگامی که یک کاربر عبارتی را در یک Search Engine جستجو می‌کند به جای این که هربار جستجو مستقیما در حجم انبوهی از صفحات وب انجام شود تنها از اطلاعات ایندکس شده برای یافتن بهترین نتایج استفاده می‌شود درنتیجه، جستجو در زمانی کوتاه‌تر انجام شده و کارایی بالاتری خواهد داشت).

خزنده‌ها در ابتدا لیستی از نشانی‌های وب را در اختیار دارند که به آنها دانه (Seed) گفته می‌شود. با مرور دانه‌ها و بررسی کد HTML این صفحات، تمامی پیوندهای صفحه مشخص شده و آنها را به لیست نشانی‌هایی که باید مرور نماید اضافه می‌کند. این روند به صورت تکراری ادامه یافته و درنتیجه حجم وسیعی از صفحات توسط خزنده مرور و احتمالا نسخه‌برداری می‌شود. از اینرو این ربات‌ها را خزنده نامیده‌اند چرا که در میان صفحات سایت‌ها می‌خزند و از سایتی به سایت دیگر می‌روند.

بسته به میزان پویایی محتوای وبسایت‌ها، خزنده باید با مرور دوره‌ای، محتوای جمع‌آوری شده‌ی خود را بروزرسانی کند. از جمله ربات‌های خزنده‌ی مشهور می‌توان به Googlebot و Bingbot اشاره کرد که به ترتیب توسط موتورهای جستجوی گوگل و بینگ مورد استفاده قرار می‌گیرد.

خزنده وب که اکثر افراد آن را به نام لاتین آن یعنی Web crawler  میشناسند یک برنامه کامپیوتری اطلاق می شود که وب جهان گستر (World Wide Web) را به صورت مرتب و سلسله مراتبی بازدید می کند و اطلاعات آن را مورد پردازش قرار می دهند.

خزنده‌ها در واقع یک نرم افزار هستند که معمولا می‌توانند از محتوای صفحات نسخه‌برداری کنند. از این نسخه‌ها برای ایندکس کردن صفحات استفاده می‌شود (در واقع هنگامی که یک کاربر عبارتی را در یک Search Engine جستجو می‌کند به جای این که هربار جستجو مستقیما در حجم انبوهی از صفحات وب انجام شود تنها از اطلاعات ایندکس شده برای یافتن بهترین نتایج استفاده می‌شود درنتیجه، جستجو در زمانی کوتاه‌تر انجام شده و کارایی بالاتری خواهد داشت).

خزنده‌ها در ابتدا لیستی از نشانی‌های وب را در اختیار دارند که به آنها دانه (Seed) گفته می‌شود. با مرور دانه‌ها و بررسی کد HTML این صفحات، تمامی پیوندهای صفحه مشخص شده و آنها را به لیست نشانی‌هایی که باید مرور نماید اضافه می‌کند. این روند به صورت تکراری ادامه یافته و درنتیجه حجم وسیعی از صفحات توسط خزنده مرور و احتمالا نسخه‌برداری می‌شود. از اینرو این ربات‌ها را خزنده نامیده‌اند چرا که در میان صفحات سایت‌ها می‌خزند و از سایتی به سایت دیگر می‌روند.

بسته به میزان پویایی محتوای وبسایت‌ها، خزنده باید با مرور دوره‌ای، محتوای جمع‌آوری شده‌ی خود را بروزرسانی کند. از جمله ربات‌های خزنده‌ی مشهور می‌توان به Googlebot و Bingbot اشاره کرد که به ترتیب توسط موتورهای جستجوی گوگل و بینگ مورد استفاده قرار می‌گیرد.

کاربردهای خرنده وب چیست

موتورهای جستجو

موتورهای جستجو و برخی از سایت‌ها دارای خزنده‌ها و یا روبات‌هایی هستند که برای گردآوری اطلاعات وب سایت‌ها و نیز بروز نگه داشتن اطلاعات مورد استفاده قرار می‌گیرند. مهم‌ترین کار بعد از گردآوری اطلاعات، ایندکس کردن آن‌ها برای پردازش سریع هنگام جستجو است. این خزنده‌ها معمولا در بازه‌های زمانی منظمی اطلاعات را بروز کرده و با نسخه‌های قبلی مقایسه می‌کنند.

مدیریت فنی وب سایت

مدیریت فنی وب سایت بخشی از کار این خزنده‌هاست که شامل یافتن لینک‌های شکسته(Broken Link) ، اعتبار سنجی (Validation) کدهای HTML، فایل‌های CSS و … می‌باشد.

جمع آوری اطلاعات خاص

کاربرد دیگر خزنده‌های وب جمع آوری اطلاعات خاصی مانند آدرس‌های ایمیل است. معمولا هدف از اینکار ارسال هرزنامه (spam) می‌باشد. برای جلوگیری از ثبت آدرس ایمیل توسط این خزنده‌ها، می‌توانید آدرس ایمیل خود را به صورت saeidREMOVEME AT جیمیل و یا موارد مشابه دیگر بنویسید.