ستاره | سرویس تکنولوژی – خزنده وب (WEB CRAWLER) چیست؟ خزنده وب که بیشتر ما آن را با عنوان Web crawler میشناسیم به برنامه کامپیوتری اطلاق میشود که World Wide Web (وب جهان گستر) را به صورت مرتب و سلسله مراتبی بازدید کرده و اطلاعات آن را مورد پردازش قرار میدهد. از Web crawler ها با عناوین دیگری مانند ants ،automatic indexers ،bots ،Web spiders و Web robots نیز یاد میشود.
کاربردهای خزنده وب
۱. موتورهای جستجو
موتورهای جستجو و برخی از سایتها دارای خزندهها و یا روباتهایی هستند که برای گردآوری اطلاعات وب سایتها و نیز بروز نگه داشتن اطلاعات مورد استفاده قرار میگیرند. مهمترین کار بعد از گردآوری اطلاعات، ایندکس کردن آنها برای پردازش سریع هنگام جستجو است. این خزندهها معمولا در بازههای زمانی منظمی اطلاعات را بروز کرده و با نسخههای قبلی مقایسه میکنند.
۲. مدیریت فنی وب سایت
مدیریت فنی وب سایت بخشی از کار این خزندههاست که شامل یافتن لینکهای شکسته(Broken Link) ، اعتبار سنجی (Validation) کدهای HTML، فایلهای CSS و … میباشد.
۳. جمع آوری اطلاعات خاص
کاربرد دیگر خزندههای وب جمع آوری اطلاعات خاصی مانند آدرسهای ایمیل است. معمولا هدف از اینکار ارسال هرزنامه (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/
- حذف پورت پیش فرض )پورت ۸۰ به صورت پیش فرض برای 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 در سال ۱۹۹۸ مقالهای آموزشی با عنوان “Writing a Web Crawler in the Java Programming Language” را ارائه داد. در آن مقاله ضمن توضیح دادن Web crawler سورس برنامه آن نیز در اختیار عموم قرار گرفت. البته این برنامه خیلی ساده و در مرحله ابتدایی میباشد. شما باید با توجه به نیازهای خود آن را تغییر داده و مورد استفاده قرار دهید.
شمیم
با سلام
مطلب مفیدی بود. اما کاش لینک دانلود چند crawler اپن سورس را هم در سایت قرار می دادید. با تشکر