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

این باتها همواره از موتور های جستجوگر دستور میگیرند؛ زمانی که یک الگوریتم جستجو به دادههای گرفته شده توسط یک وب کراولر اعمال میشود، میتواند ارتباط بین کلماتی که کاربر جستجو کرده و مطالبی که در سایتهای مختلف وجود دارد را پیدا کند و لیستی از آن مطالب را با ترتیب خاص خود به نمایش بگذارد.
یک بات وب کراولر، مانند شخصی است که در کتابخانه کار میکند. کار او دستهبندی کتابها است. او برای انجام این کار تیتر، خلاصه و قسمتی از متن داخل کتاب را مطالعه و به یاد میسپارد. زمانی که شخصی وارد کتابخانه شد کتابدار میتواند کتاب مورد نظر را بدون اتلاف زمان و بهسرعت بر اساس مطلبی که شخص دنبالش است، بیابد.
شاخصسازی جستجو۳ چیست؟
شاخصسازی جستجو مانند ساختن کتابخانهای از موضوعات مختلف از محتوای اینترنت است تا موتورهای جستجوگر بتوانند اطلاعات مرتبط با این موضوعات را پیدا کنند. زمانی که کاربر جستجو میکند، موتور جستجو شاخصهای مرتبط با متن کاربر را در بین سایتهایی که از قبل کراول شده است جستجو میکند. زمانی که موتور جستوجو میخواهد یک صفحه از وبسایت را شاخصگذاری کند، باید تمام کلمات داخل آن صفحه را بهجز حروف اضافه و ربط شاخصگذاری کند.
وب کراولرها چگونه کار میکنند؟
اینترنت یک محیط همواره در حال تغییر و بهروزرسانی است. باتهای وب کراول کننده نمیتوانند تمامی سایتهای موجود در اینترنت را در اختیار داشته باشد. به همین جهت کراولرها ابتدا از یک آدرس ریشه شروع به پیمایش میکنند و زمانی که به یک ابر پیوند (Hyperlink) رسیدند، آن را بهصف لینکهایی که در ادامه باید پیمایش شود اضافه میکنند (فرزند) و با این کار یک درخت عظیم ایجاد میشود که تمامی اطلاعات جمعآوریشده در آن ذخیره شده است.

زمانی که تعداد لینکها رو به افزایش میرود، باتها دیگر قادر نیستند در زمان کوتاه به ما پاسخ دهند. پس باید برای باتها سیاستهایی ایجاد کرد که کراولر بتواند در زمان قابلقبول قادر به پاسخگویی باشد. این سیاستها به شرح زیر میباشند:
اهمیت نسبی هر صفحه از وب
بیشتر باتهای کراولینگ کل صفحه سایت را پیمایش نمیکنند بلکه بر اساس ارزش هر لینک آن را به صف جستجوی خود اضافه میکنند. ارزش هر لینک بر اساس تعداد صفحههای دیگری که به آن لینک شدهاند، تعداد بازدیدکنندهها و پارامترهای دیگری که هر جستجوگر به طور اختصاصی برای خود طراحی میکند تعیین میشود.
بازدید مجدد وبسایت
محتوای داخل اینترنت همواره در حال بهروزرسانی و یا در حال حذف شدن، یا انتقال به محل دیگری است. وب کراولرها بهصورت متناوب در حال بازبینی مجدد از صفحات هستند تا ببینند آیا با نسخه قبلی صفحه همخوانی دارد یا خیر؟ در صورت مغایرت، شروع به شاخصگذاری دوباره آن صفحه میکنند.
فایل robots.txt
وب کراولرها بر اساس این فایل متنی در هر وبسایت تصمیم به کراول کردن میکنند. به این فایلهای متنی، پروتکل ممانعت رباتها (Robots exclusion standard) گفته میشود. این فایل متنی به ربات میگوید که قوانین دسترسی هر بات به وبسایت چگونه است، چه صفحاتی قابل کراول کردن هستند و چه لینکهایی قابلیت دنبالکردن دارند.
تمامی این فاکتورها سیاستهای متفاوتی را اعمال میکنند تا الگوریتمی که برای جستجو در نظر گرفته شده است دچار سردرگمی و تأخیر نشود و در عوض به آن کمک کند تا نزدیکترین مورد را برای کاربر نشان دهد.
اما در نهایت برای یک بات هدف یک چیز است: دانلود اطلاعات و شاخصگذاری محتوای داخل هر صفحه.
چرا به وب کراولرها عنکبوت نیز گفته میشود؟
اینترنت محیطی است که تمام کاربرها به آن دسترسی دارند. کاری که یک کاربر جستجوگر ساده در اینترنت میکند این است که برای به دست آوردن مطلب مورد نظرش از صفحه ای به صفحه ی دیگر میرود همانند یک عنکبوت که با استفاده از تارهای خود میتواند از جایی به جای دیگر برود.
آیا درست است که باتهای وب کراولر همیشه به محتوای داخل وب دسترسی داشته باشند؟
بستگی به محتوای وب دارد. وب کراولرها نیاز به منابع سرور برای شاخصگذاری دارند. باتها با درخواستهای متعددی که به سرور دارند، مانند کاربری که در حال بازدید از وبسایت است عمل میکنند. البته این مورد به تعداد صفحات و حجم محتوای داخل هر صفحه از وبسایت نیز بستگی دارد. کار هوشمندانهای که میتوان اینجا انجام داد این است که نگذاریم شاخصگذاری جستجو در اینجا بهوفور انجام شود.
همینطور که برنامهنویسها و شرکتها، بهمنظور بالا بردن امنیت سایت، کاربری را که درخواست متعددی به یک لینک از سایت را میدهد مسدود میکنند، صاحبان سایت میتوانند جلوی برسی محتوای داخل سایتشان توسط باتهای کراولر را محدود کنند.
تفاوت اصلی بین وب کراولینگ و وب اسکرپینگ ۴چیست؟
وب اسکرپینگ، داده اسکرپینگ یا استخراج دادههای وب زمانی است که بات محتوای داخل یک وبسایت را بدون اجازه برسی میکند، و در اکثر اوقات، این عمل را با هدف بهخصوصی انجام میدهد. به طور مثال برای گرفتن اطلاعات داخل جدول کشورهای کرونایی، لیست اخبار، متن خبری در یک وبسایت خبری و … که برای جمعآوری داده در حوزههایی مانند دیتا ماینینگ و پردازش زبان طبیعی به کار میرود.
وب اسکرپینگ به طور معمول نسبت به وب کراولینگ هدفمندتر است. باتهای وب اسکرپینگ به دنبال صفحاتی خاص با اطلاعات خاص میباشند درحالیکه باتهای وب کراولرینگ به دنبال جستجوی تمامی صفحات و شاخصگذاری اطلاعات آنها هستند.
همینطور باتهای وب اسکرپینگ میتوانند بهعنوان حملهکننده به یک سایت شناخته شوند اما اگر از قوانینی که در فایل متنی robot.txt هر سایت پیروی کنند و درخواستهای خود را محدود نگهدارند، هیچگاه توسط سایت مسدود نمیشوند.
ابزار های وب کراولینگ
امروزه ابزارهای بسیار متعددی در اختیار کاربران قرار گرفته است. در اینجا به چند نمونه از بهترین ابزارها اشاره میکنیم:
برای زبان پایتون
برای زبان جاوا
برای زبان جاوا اسکریپت
تعدد ابزارها نباید باعث سردرگمی شما شود؛ به دلیل آنکه هر کدام از این ابزارها نقاط قوت و ضعف خاص خودشان را دارند؛ لذا قبل از شروع به یادگیری، بسته به نیاز و کاری که میخواهید انجام دهید، مستندات آن برسی کنید و نظرات کاربران درباره هرکدام را بخوانید تا بتوانید بهترین ابزار را متناسب با هدف خود انتخاب کنید.