img

روبات‌های وب: زنبور‌های عسلِ کارگرِ دنیای اینترنت

/
/
/

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

روبات‌های وب می‌توانند در هم در جهت خیر، و هم در جهت شر استفاده شوند. به خواندن ادامه دهید تا با این ربات‌ها بیشتر آشنا شوید، و با استفاده از راهنماهای این مقاله، یک ربات ساده برای خودتان بسازید.
هنگامی که ما با کلمه‌‌ی روبات برخورد می‌کنیم، در ذهن اغلب ما تصویر ربات‌های انسان نماییِ مکانیکی نقش می‌بندد که با سرعت نگران کننده‌ای در حال جاگزین شدن با نوع بشر می‌باشند. برخی ما هم تصویر روبات‌های وب را در ذهن خود مجسم می‌کنیم که در حال بدمینتون بازی کردن یا سرو غذا می‌باشند.طبق نظر کارآفرین نرم افزار و آینده‌ پردازی به نام Martin Ford، تا هفتاد و پنج درصد مشاغل کنونیِ انجام شده به دست بشر، توسط ربات‌ها انجام خواهند گرفت. بنده اطمیان دارم که همگی ما کارهایی را که روبات‌ها در فیلم ترمیناتور و سایر فیلم‌های هالیوودی انجام می‌دهند را دیده‌ایم. بنابراین اگر یک روبات می‌تواند آن همه فعالیت فیزیکی را انجام دهد، پس آیا توانایی فشردن دکمه‌ی یک وب سایت، پر کردن یک گزینه، یا وارد کردن مقدارهای گوناگون در یک جعبه‌ی ورودی را نیز خواهد داشت؟ قطعا یک روبات توانایی انجام فعالیت‌های مذکور را نیز خواهد داشت، و ما اینچنین روبات‎‌هایی را بات اینترنتی یا روبات وب می‌نامیم.
روبات وب تنها یک برنامه‌ی نرم افزاری می‌باشد(یا مجموعه‌ای از برنامه‌ها است) که هر برنامه‌ی تحت وبی را بررسی کرده و وظایف متعددی را انجام می‌دهد. اگرچه این روبات‌‌ها قادر به انجام وظایف گوناگونی هستند، اما عمدتا به منظور انجام کارهایی تکراری به کار بسته می‌شوند، که به مراتب با سرعت بالاتری نسبت به شکل انسانی و دستی انجام می‌پذیرند. روبات‌های وب، یا همان عنکبوت‌ها یا خزندگان وب، چیزی بیش از اسکریتپ‌های جمع آوری کننده‌ی اطلاعات از وب سرور‌های گوناگون نیستند، که این اطلاعات را تحلیل کرده و با سرعتی بسیار بیشتر از سرعت انسان، آنها را به صورت به فایل در می‌آورند. از اینکه بیشتر از ۵۲ درصد سهم ترافیک اینترنت، توسط روبات‌های وب اشغال می‌شود، نبایستی شگفت زده شد، زیرا که بازدید کنندگان وب ‌سایت‌ها اغلب روبات هستند، نه انسان! به این روبات‌ها نام زنبور‌های عسلِ کارگر اتلاق می‌شود. برخی از بات‌های وب به طور مداوم به تازه شدن feed فیس بوک شما کمک می‌کنند، و برخی دیگر مثل بات‌های گوگل(Googlebots)، به ما در فهمیدن چگونگیِ رتبه بندیِ نتایج جست‌و‌جوی گوگل کمک می‌کنند. بات‌های وب از اسکریپت‎‌ها برای تعامل با برنامه‌های تحت وب گوناگون استفاده می‌کنند. از این رو ما قادر هستیم که روبات‌های وب را با بهره‌گیری از انواع گوناگونی از زبان‌های برنامه نویسی و اسکریپت نویسی متن بازی چون Perl، python، C، PHP، و غیره توسعه دهیم.
تمامیِ این زبان‌ها به توسعه‌دهندگانِ بات‌های وب اجازه می‌دهند تا اسکریپت‌هایی را بنویسند که قادر به انجام وظایف روال داری (procedural) چون اسکن کردن وب، نمایه سازیِ وب می‌باشند. بات‌های وب پدید آمده توسط این اسکریپت‌‌ها، این توانایی را به صورت بلقوه دارند که برای انجام وظایف گوناگونی مورد استفاده قرار گیرند، بنابراین، این بات‌‌ها با توجه به نوع تعاملشان با انواع برنامه‌‌های تحت وب طبقه بندی می‌شوند. گونه‌های خرابکاری از روبات‌های وب نیز وجود دارند، که توسط هکرها برای انجام کارهای متعددی در فضای اینترنت، به منظور نصب فایل‌های مخرب، مورد استفاده قرار می‌گیرند. روبات‌های وب از پیام‌رسان‌های فوری، Internet Relay Chat(IRC) یا سایر رابط‌‌های تحت وب برای برقرایِ ارتباط با دیگر کاربران سیستم‌های اینترتی استفاده می‌کند. IRC همچنین در یاری رساندن به کاربران تازه وار، در پشت صحنه‌ی هر کانال مکالمه‌ای قرار می‌گیرد و نسبت به عبارت‌های وارد شده توسط کاربر، راهنمایی‌هایی را انجام می‌دهد(این کار را مبتنی بر تطابق الگویی انجامی می‌دهد.)

 

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

 

روبات‌های وبِ قانونی
این نوع از روبات‌ها، کارهایی قانونی را بر روی برنامه‌های تحت وب انجام می‌دهند. اینها در صرفه‌جویی در زمان و انرژی کاربر تاثیر بسیاری دارند. اگر چنانچه عمل مشابه کار اینگونه ربات‌ها بخواهد دستی انجام گیرد، زمان بسیار بیشتری را به خود معطوف خواهد داشت. اینگونه از بات‌‌ها هدفی را دنبال می‌کنند و برای صرفه جویی در زمان برای بسیاری از برنامه‌ها و کاربردها مفید واقع می‌شوند، و به این دسته‌‌های وسیع طبقه بندی می‌گردند:
۱- روبات‌های وبِ عنکبوتی: اینها توسط انواع مختلف موتورهای جست‌و‌جو به کار گرفته می‌شوند تا به بررسی صفحات مختلف وب، به منظور سازماندهی، محتوای صفحات و لینک دادن به سایر صفحات وب بپردازند. این روبات‌‌ها ساز و کاری معین برای نمایه سازی دارند، که بر مبنای آن درباره‌ی رتبه‌بندیِ صفحات متفاوت وب در میان نتایج جست‌و‌جو تصمیم گیری می‌کنند. اینگونه ربات‌ها توسط گوگل به کار گیری می‌شوند، و Googlebot نام دارند.
۲- ربات‌های وبِ داد و ستد کننده: اینها به انواع سایت‌های حراجی مثل یک عنکبوت(spider) سرک کشیده تا بهترین پیشنهادات را در زمینه‌ی خدمات یا کالای خاصی را ردیابی کنند. در این سناریوها، یک روبات وب داد و ستد کننده به منظور منفعت اقتصادی، تجاری به کار برده می‌شود. این روبات‌ها همچنین در ارائه‌ی تحلیلی کامل در مورد فعالیت‌های تجاری آنلاین در جهت یافتن بهتری معامله برای کاربر سودمند هستند. به عنوان مثال، Trivago، که یک برنامه‌ی تحت وبِ رزرو هتل می‌باشد، از چنین بات‌هایی برای نمایش بهترین قیمت‌های هتل استفاده می‌کند.
۳- ربات‌های وب رسانه‌ای: اینها در جهت فراهم کردن آخرین اخبار، وضع هوا، اخبار ورزشی، نرخ های ارز، و غیره کاربرد دارند. این روبات‌ها همچنین به عنوان سانسورچی در انواع گوناگونی از برنامه‌هایی که پیام‌رسان‌های فوری و اتاق‌‌های گفت‌و‌گو را اجرا می‌کنند نیز به کار می‌روند. اینها به طور گستره توسط انواع پیام رسان‌‌های آن لاینی مثل eBuddy، IMO و غیره به کار گرفته می‌شوند.

 

روبات‌های وبِ مخرب:
روبات‌های وب مخرب، مجموعه‌ای از روبات‌های ذکر شده هستند، که در جهت دیگری، به منظور انجام اعمالی مخرب یا شکست‌های امنیتی به کار برده می‌شوند. اینگونه بات‌ها به طور وسیعی توسط هکرها در سراسر جهان مورد استفاده قرار می‌گیرند.
۱- روبات‌های وبِ اسپم: اینها انواع گوناگونی از داده‌‌ها را از فرم‌های متعدد، که به صورت آن‌لاین پر می‌شوند، جمع می‌کنند. از این اینگونه بات‌ها، همچنین برای پراکندن آگهی‌های تبلیغاتی به صورت بالاپر(pop up) نیز استفاده می‌شود. نهادهای تبلیغاتی مختلف هم از این بات‌ها در جهت جمع کردن آدرس‌های ایمیل مردم استفاده می‌کنند، تا بتوانند آنها را بعدا آماج سیل ایمیل های تبلیغاتی قرار دهند.
۲- روبات‌های وب هکر: هکرها برای خزیدن در گوشه و کنار اینترنت از این نوع بات‌ها استفاده می‌کنند تا بتوانند نقاط ضعف‌های برنامه‌های آن‌لاین و وب سایت‌ها را کشف کرده تا سپس از آنها در جهت سوءاستفاده کردن فرصت طلبی کنند.
۳- بات‌نت‌ها: اینها در واقع شبکه‌هایی از رایانه‌‌های به اصطلاح زامبی هستند، که هکرها به تسخیر خود در آورده اند، تا توسط آنها دست به انواعی از حملات مخرب بزنند. از جمله این نوع حملات، حمله‌ی محروم سازی از سرویس می‌باشد. رایانه‌های زامبی شده به رایانه‌هایی اطلاق می‌شود که بدون آگاهی صاحبانشان توسط هکرها تسخیر شده اند.
۴- روبات‌های وب دانلود کننده: برای این به کار می‌روند که کاربر به جای مشاهده‌ی صفحه‌ی اصلی، صفحه‌ای را دانلود کند که مطلوب هکر می‌باشد. همه‌ی ما با این موقعیت آشنا هستیم که در وضعیتی قرار گرفته‌ایم که چاره‌ای جز کلیک بر روی یک لینک را نداریم و اینگونه صفحه‌ی وب مورد نظر هکر دانلود می‌شود.

چه چیزهایی را بایستی قبل از ساخت یک روبات وب در نظر گرفت
قبل از توسعه‌ی یک روبات وب، ما بایستی با دقت به تحلیل وظیفه‌ی مطلوبمان که می‌خواهیم روبات انجام دهد بپردازیم. در اینجا به بررسیِ چند پیش‌نیاز کلی که قبل از توسعه‌ی روبات وب بایستی در نظر گرفته شوند می‌پردازیم.
۱- وظیفه یا وظایفی را که می‌خواهیم روباتمان انجام دهد را تحلیل کنیم. استفاده از روبات‌ها برای انجام کارهای تکراری و زمان‌بر در صورت دستی انجام گرفتن، ایده‌ی مناسبی می‌باشد.
۲- سلسله مراحلی که روبات وب قرار است انجام دهد، تا وظیفه‌ی محول شده را در کمترین زمان ممکن انجام دهد بایستی مورد برنامه ریزی قرار گیرد. این کار کمک می‌کند تا یک برنامه‌ی موثر، بهینه و عاری از خطا حاصل شود.
۳- دقت کنید که آیا روبات نیاز به دخالت دستی دارد، و یا اینکه همه چیز به صورت خودکار قرار است انجام گیرد.
۴- در انتخاب زبان برنامه نویسی یا زبان اسکریپت نویسی مناسب برای توسعه‌ی بات وب بایستی تحلیلِ دقیقی داشته باشیم، که بتوانیم وظیفه‌ی مورد نظرمان را در کمترین زمان و با حداقل هزینه به سرانجام برسانیم.
۵- نیاز به ورود و شناسایی شدن کاربر توسط بات، به منظور ایجاد تغییرات، درخواست و سایر فعالیت‌ها را بررسی کنید.
۶- نوع اجرای بات خود را در نظر بگیرید. یعنی به این موضوع فکر کنید که بات، یک برنامه‌ی مستقل خواهد بود، و یا اینکه قرار است که درون یک مرورگر اجرا شود.
۷- اگر قرار است که بات بر روی یک سرور دوردست اجرا شود، بررسی کنید که آیا تصدی آن برای سایر ویرایشگران نیز میسر است، یا خیر؟

ساخت یک بات وب کوچک و رایگان
بعد از آنکه ملاحظات و تفکرات لازم را انجام دادیم، زمان آن است که پا پیش نهاده و توسعه‌ی بات وب خود را آغاز کنیم. اجازه دهید با یک بات کوچک شروع کنیم، که توسط پایتون اسکریپت نویسی خواهد شد، و هدف آن اسکن یک صفحه‌ی وب مشخص می‌باشد. شما برای این منظور بایستی ملزومات زیر را بر روی رایانه‌ی خود نصب داشته باشید:
* Python 3.x یا بالاتر
* هر نوع ویرایشگر متن، مثل Notepad، و یا سایرین
حالا از مراحل زیر پیروی کنید:
* یک ویرایشگر ساده‌ی متن را باز کنید، مثلا Notepad، که جزئی استاندار از ویندوز می‌باشد و می‌توان یک اسکریپت پایتون، برای یک روبات وب را در آن نوشت.
* اسکریپت پایتون را مطابق کدهایی که در زیر ملاحظه می‌کنید، بنویسید. دلیل نوشته شدن برخی کدها، به صورت کامنت نگاشته شده است.

# importing required library files
from html.parser import HTMLParser
from urllib.request import urlopen
from urllib.request import urlopen
# Creating a class called LinkParser that inherits some
Methods from HTMLParser
class LinkParser(HTMLParser):
# adding some more functionality to HTMLParser
def handle_starttag(self, tag, attrs):
# checking for the beginning of a link as they are normally
Present in <a> tag
If tag == ‘a’:
for (key, value) in attrs:
if key == ‘href’:
# grabbing new URL and adding the base URL to it so that it
Can be added to collection of links
newUrl = parse.urljoin(self.baseUrl,
value)
self.links = self.links + [newUrl]
# Function the urlopen function from the standard Python 3
library
response = urlopen(url)
if response.getheader(‘Content-Type’) == ‘text/html’:
htmlBytes = response.read()
htmlString = htmlBytes.decode(“utf-8”)
self.feed(htmlString)
return htmlString, self.links
else:
return “”, []
# spider() function which takes in an URL, a word to find, and
no. of pages to search through
def spider(url, word, maxPages):
pagesToVisit = [url]
numberVisited = 0
foundWord = False
# Creating a LinkParser to get all links to the page.
While numberVisited < maxPages and pagesToVisit != [] and
Not foundWord:
numberVisited = numberVisited +1
# starting from the first page of the collection:
url = pagesToVisit[0]
pagesToVisit = pagesToVisit[1:]
try:
print(numberVisited, “Visiting:”, url)
parser = LinkParser()
if data.find(word)>-1:
foundWord = True
pagesToVisit = pagesToVisit + links
print(“ **Success!**”)
except:
print(“ **Failed!**”)
if foundWord:
print(“The word”, word, “was found at”, url)
else:
print(“Word never found”)

 

کاربردهای وسیع روبات‌های وب
۱- بات‌های گفت‎وگو کننده به مردم امکان پرسیدن سوال را می‌دهند، و پاسخ‌هایی مناسب را در ازای این سوال‌ها برمی گردانند.
۲- بات‌های وب در عرصه‌های متنوعی مثل گزارش وضع هوا، نتایج مسابقات ورزشی، اطلاعات پستی، و غیره یاری رسان هستند.
۳- از آنها برای توسعه‌ی پیام‌رسان‌های متفاوتی مثل SmarterChild بر روی پیام‌رسان فوریِ AOL می‌توان استفاده کرد.
۴- از آنها به طور گسترده برای اسکن کردن صفحات وب و نمایه سازی استفاده می‌شود.
۵- از آنها می‌توان برای ردگیریِ وسائط نقلیه به صورت بی درنگ استفاده کرد، که در صنعت کامیون رانی سودمند می‌باشد.
۶- بات‌ها می‌توانند وظیفه‌ی مشاورین روانشناس را نیز تقلید کنند، منوط بر اینکه با پاسخ‌های فراوانی پر شوند.
۷- گزارش دادن کیفیت هوا
۸- بات‌های بازی کن، در بسیاری از برنامه‌های سرگرمی و بازی کاربرد دارند.
۹- ربات‌های سایت‌های حراجی، فرآیند حراج را ساده‌تر می‌نمایند.

 

مزایا و معایب بات‌ها
مزایا:
۱- به انجام سریع تر فعالیت‌های گوناگونی در فضای وب کمک می‌کنند، که در صورت انجام دستی، زمان بسیاری اتلاف می‌شود.
۲- به گرفتن داده‌های مورد نیاز از مجموعه‌های بزرگ در سریع‌ترین زمان ممکن کمک می‌کند.
۳- به صاحبان سایت‌های مختلف کمک می‌کند تا با به عضویت درآوردن سایت خود در یک نمایه، ترافیک مضاعفی را برای سایت خود ایجاد کنند.
۴- روبات‌های وب در انجام وظایف خود بسیار قابل اتکا تر و سریع از همتایان انسانی هستند.

 

معایب:
۱- در برخی مواقع، به صورت موقت، محرومیت از ارائه‌ی سرویس برای بعضی از کاربران پیش می‌آید، که علت آن دانلودهای سنگین لحظه‌ای صفحات می‌باشد. بازدیدکنندگان ممکن است امکان دسترسی به سایت با سرعت نرمال را نداشته باشند، یا در برخی موارد حاد، دسترسی به کلی قطع گردد، این پدیده از این جهت بروز می‌کند که ممکن است یک روبات در حال دانلود سنگین، در یک بازه‌ی زمانی کوتاه باشد، و بیشتر منابع سایت را به خودش اختصاص دهد.
۲- استفاده از روبات‌های وب، همچنین سبب اتلاف پهنای باند می‌شود، چرا که مقداری از محتوایی که توسط این بات‌ها دانلود می‌شود، ممکن است برای شخص کاربردی نداشته باشد، پس شانس دانلود شدن محتوایی که لاجرم دور ریخته می‌شود افزایش می‌یابد. این موضوع در نهایت به هدر رفتن پهنای باند می‌گردد.
۳- از بات‌های وب مخرب گوناگونی توسط هکرها برای بررسیِ آسیب‌پذیری‌های سیستم‌های وب استفاده می‌شود، و آنها از این موقعیت سوءاستفاده کرده تا به مقاصد خرابکارانه‌ی خود برسند.
۴- از روبات‌های وب مخرب همچنین برای ارسال اسپم به ایمیل کاربران به منظور گرفتن اطلاعات آنها نیز استفاده می‌شود.

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

۱- قبل از هر اقدام امنیتی دیگر، این مسئله را بررسی کنیم که آیا، بازدید کننده یک انسان واقعی است یا یک بات: ما می‌توانیم با چک کردن فایل log سرور وبِ خود، بفهمیم که آیا بات‌‌ها سایت ما را بازدید می‌کنند، یا خیر. ما می‌توانیم با نگاه کردن به بخش مدیریت کاربر(user agent field) از وجود نام‌های نامعمول، دفعات و تکرار بازدید آنها و همچنین نوعی فایل دریافت شده از سایت توسط آنها، اطلاع حاصل کنیم.
۲- از فرا تگ‌ها(meta tag)، فایل robots.txt و سایر راه‌ه،ا برای اینکه به روبات‌ها بفهمانید که چگونه سایت شما را نمایه سازی کنند، یا اصلا این کار را انجام ندهند، استفاده کنید: سعی برای روبات‌ها، توصیه‌هایی در جهت چگونگیِ دانلود و نمایه سازی شدنِ سایت خود داشته باشید.
۳- در صورت امکان، تمام اسکریپت‌های وقت گیر را به صفحاتی ثابت تبدیل کنید: اجرای اسکریپت‌هایی که صفحات وب تولید می‌کنند، برای هر سرور وبی، زمانبرتر است از آنکه بخواهد صفحات وب ثابت HTML را تحویل دهد. بنابراین، شانس محرومیت از دریافت سرویس هنگام دانلودهای سنگین لحظه‌ای توسط روبات‌ها، که در این حالت صفحاتی ثابت می‌باشند، بر روی سرور کاهش می‌یابد
۴- قبل از اقدام به انجام عملیات وقت‌گیر، باتِ وبِ درخواست کننده را بررسی کنید: اگر شما مجبور به استفاده از اسکریپت‌ها در سایت خود هستید، قبل از اجازه دادن اجرای عملیات زمانبر، بررسی کنید که بات درخواست کننده، یک بات مخرب نباشد.
۵- اگر چنانچه آدرس IP خاصی، به صورت مداوم، علی رغم رعایت مسایل فوق الذکر، بازهم مشکل ساز بود، محدود کردنِ دسترسی به سرور را در نظر داشته باشید: اگر ما اطمیان داشته باشیم که یک IP خاص، یا کلاسی از آدرس‌ها برای سرور وب ما مشکل ساز هستند، سعی کنید که با صاحبان این اتصالات تماس برقرار کنید. اگر تمامیِ اینها موفقیت آمیز نباشد، شما بایستی دسترسیِ این آدرس‌ها و IPها را به سرور خود، ممنوع کنید.
۶- از کدنویسی‌های مخصوص به سرور گوناگونی استفاده کنید: اگر شما هنوز به شدت با روبات‌های وب مخرب در کلنجار هستید، کدهایی مخصوص به سرور را بنویسید. در این حالت، شما افزونه‌ای برای سرور خود خواهید نوشت که به صورت پویا مشخصه‌های گوناگون برنامه‌ی درخواست کننده را بررسی می‌کند، تا از وجود روبات‌های وب، آگاه گردد.

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

It is main inner container footer text