خزنده وب چیست و نحوه کار با آن چگونه است؟

به گزارش وبلاگ فوتوسل، خزنده وب یا 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) آن به شکل زیر می باشد :

عادی کردن آدرس (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/

  • حذف پورت پیش فرض )پورت 80 به صورت پیش فرض برای 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/ جلوگیری می نماید :

(اگر درباره فایل Robot.txt نمی دانید، اینجا کلیک کنید).

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 Search Server
  • Pavuk
  • YaCy

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

سایت sun در سال 1998 مقاله ای آموزشی با عنوان Writing a Web Crawler in the Java Programming Language را ارائه داد. در آن مقاله ضمن شرح دادن Web crawler سورس برنامه آن نیز در اختیار عموم نهاده شد. البته این برنامه خیلی ساده و در مرحله ابتدایی می باشد. شما باید با توجه به احتیاجهای خود آن را تغییر داده و مورد استفاده قرار دهید .

گروه تکنولوژی وبلاگ فوتوسل

منبع: setare.com

به "خزنده وب چیست و نحوه کار با آن چگونه است؟" امتیاز دهید

امتیاز دهید:

دیدگاه های مرتبط با "خزنده وب چیست و نحوه کار با آن چگونه است؟"

* نظرتان را در مورد این مقاله با ما درمیان بگذارید