زمان مطالعه: 7 دقیقه
ساخت و طراحی ربات ها

ساخت و طراحی ربات ها

ربات دستگاهی الکترو - مکانیکی برای انجام وظایف گوناگون است. یک ماشین که می‌تواند برای عمل به دستورهای...

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

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

چرا من باید یک ربات بسازم؟

رباتها به صورت خودکار توانایی انجام کارها را دارند و این یعنی سریع‌تر از انسانها عمل می‌کنند. برای انجام کارهای ساده نیازی به ربات نیست اما اگر شما نیاز دارید که کاری را به تعداد زیاد انجام دهید مثلاً: ممکن است شما نیاز پیدا کنید که یک الگویی را به تمام مقاله‌های موجود در یک رده (1000 مقاله) بیفزایید، پس راه مناسب برای انجام این کار طاقت فرسا استفاده از ربات به جای انسان است.

نکات قابل توجه قبل از ایجاد ربات

اگر شما تصمیم به ساخت ربات گرفته‌اید برنامه ریزی را مد نظر داشته باشید تا از خطاهای احتمالی جلوگیری کرده باشید، این مسایل باید مد نظر قرار گفته شوند:

  • آیا به صورت دستی ربات را فعال می‌کنید یا اینکه ربات به‌صورت اتوماتیک کار می‌کند؟

  • آیا ربات را به تنهایی ایجاد کرده‌اید یا از ربات‌دارهای سایر زبانها کمک گرفته‌اید؟

  • از چه زبانی برای پیاده‌سازی ربات استفاده کرده‌اید؟

  • آیا درخواستی برای پرچم داده‌اید و اینکه آیا وارد سیستم شده‌اید؟اگر اینگونه‌است، کارهایی که با ربات انجام می‌دهید در سیاهه‌ها و تغییرات اخیر قابل رویت است و در صفحات ویکی ذخیره می‌شود.

  • آیا ربات را برای اجرا در وب آماده کرده‌اید یا به روشهای دیگر و با زبانهای دیگر همچون جاوا اسکریپت آن را ساخته‌اید؟

  • اگر ربات را بوسیله برنامه‌ای مستقل ساخته‌ایدآیا آن را بر روی رایانه خودتان گذاشته‌اید یا بر روی یک سرور مانند Toolserver و از راه دور آن را کنترل می‌کنید؟

  • اگر ربات قابل اجرا بر روی یک سرور از راه دور است، آیا ویراستاران دیگر قادر هستند که کار ربات یا شروع کار آن در زمان اجرا را ببینند؟

robot-design
robot-design
چگونه ربات در ویکی‌پدیا کار می‌کند؟

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

Api برای رباتها

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

MediaWiki API

یک کتابخانه‌ای برای دادن اجازه به رباتها- برای پردازش خودکار - برای ساختن کووری‌ها و تغییرات پست‌ها می‌باشد. این کتابخانه برای زبان‌های متفاوتی موجود می‌باشد جی‌سون, XML, YAML موارد جدید کاملا با Query API interface قدیمی ساگاری دارد. اینجا را ببینیدAPI manual page.

وضعیت: برای تمام پروژه‌های ویکی مدیا با زیر مجموعه‌های کامل موجود می‌باشد. توانایی برای ویرایش صفحات تمام پروژه‌های ویکی مدیا از طریق api.php فعال شده‌است و به رباتها اجازه می‌دهد که تمام عملیاتها را بدون ویرایش تصویری انجام دهد.

Screen scraping index.php

این ابزار در ابتدا کد‌های HTML صفحات ویکی‌پدیا (که می‌توان آنها را در مرورگرها در بخش View->Source دید)را تحلیل می‌کند و بر اساس جای گیری عناصر موجود در صفحه عمل می‌کند. این روش چندین مشکل دارد گرفیک ویکی‌پدیا ممکن هست بدون هیچ اطلاع قبلی تغییر کند که باعث به هم ریختگی کدها می‌شود همچنین در خواست از سرور برای کدهای HTML در مقایسه با تحلیل متون حجم زیادتری از اطلاعات را از سرور می‌گیرد. برای کاهش مقدار اطلاعات دریافتی از ویکی‌پدیا می‌توان از دستور action=render استفاده کرد که خروجی w/index.php?title=Wikipedia:... &action=render را می‌دهد و در نتیجه نوار ابزار‌های کناری و زبانه‌های ویکی‌پدیا حذف می‌گردند و کار کردن روی گرافیک اصلی ویکپدیا که انسان می‌بیند سریع تر و آسان تر می‌شود.

موارد دیگری از index.php ممکن است مفید باشد مانند لیست Manual:Parameters to index.php که نیاز کمی برای استفاده از تکنیک در حال حاضر احساس می‌شود و این تکنیک معمولا به وسیله ربات‌های قدیمی که قبل از به وجود آمدن API بودند کاربرد داشته

ساخت و طراحی ربات ها
ساخت و طراحی ربات ها
وضعیت: نامطلوب

Special:Export

برای تولید خروجی از صفحات در قالب XML کاربرد دارد برای اطلاع بیشتر به Manual:Parameters to Special:Export مراجعه کنید

وضعیت: در ساختار کلیه سرورهای مدیا ویکی به صورت توکار موجود می‌باشد

Raw (Wikitext) page processing

با فرستادن action=raw یا action=raw&templates=expandو فرستادن درخواست به index.php متن خام کدهای صفحات ویکی را به صورت پردازش نشده به عنوان خروجی ارایه می‌دهد. یک query API با prop=revisions&rvprop=content یا prop=revisions&rvprop=content&rvexpandtemplates=1 دقیقا برابر است و اجازه استخراج اطلاعات بیشتری را می‌دهد.

وضعیت: در ساختار کلیه سرورهای مدیا ویکی به صورت توکار موجود می‌باشد

بعضی از سروهای ویکی‌پدیا تنطیم شده‌اند تا اجازه فشرده سازی محتویات را به کاربر بدهند gzip این عمل می‌تواند با یک خط دستور "Accept-Encoding: gzip" در بخش ابتدایی HTTP می‌توان به محتویات فشرده شده دست یافت البته در صورتی که HTTP پاسخ "Content-Encoding: gzip" بدهد متن‌ها به صورت فشرده هستند در غیر این صورت به صورت عادی ذخیره شده‌اند. این مورد به نرم افزار ویکی مدیا ربطی ندارد بلکه به سرور بستگی دارد. همچنین ممکن است سایتهایی که از ویکی مدیا استفاده می‌کنند از فشرده سازی استفاده نکرده باشند.

ورود به سیستم:

مسلم هست که رباتها مانند انسانها باید در وبسایت برای ویرایش کردن وارد شوند. Login رباتها می‌توانند بدون ورود به سیستم مطالب را بخوانند رباتهایی که آزمایش خود را پس دادند می‌توانند با ورود به سیستم به ویرایش بپردازند. رباتها در قالب ورود به سیستم و داشتن پرچم می‌توانند نتایج بسیاری برای هر query برای API ویکی مدیا داشته باشند. بسیاری از framworks رباتها باید ورود به سیستم و کوکی‌ها را به صورت خودکار انجام دهد. اگر شما از این frameworks ‌ها استفاده نمی‌کنید باید مراحل زیر را دنبال کنید. برای امنیت، اطلاعات ورود به سیستم باید از متدHTTP POST استفاده کند. به خاطر اینکه پارامتر HTTP GET به راحتی در URL قابل رویت می‌باشد. و ورود از طریق GET باید غیر فعال گردد. برای ورود ربات به سیستم برای استفاده از API ویکی مدیا دو مرحله درخواست لازم است.

درخواست 1:

URL: https://fa.wikipedia.org/w/api.php?action=login&format=xml

POST parameters:

lgname=BOTUSERNAME

lgpassword=BOTPASSWORD

اگر پسورد درست بود نتیجه "NeedToken" و رمز در قالب XML به عنوان نوشته در mw:API:Login باز می‌گردد. فرمتهای دیگر نیز امکان پذیر می‌باشد همچنین کوکی‌ها را به شرح زیر باز میگرداند.

robot-design
robot-design
درخواست 2:

 URL: https://fa.wikipedia.org/w/api.php?action=login&format=xml

POST parameters:

lgname=BOTUSERNAME

lgpassword=BOTPASSWORD

lgtoken=TOKEN

وقتی عبارت TOKEN از نتیجه قبلی بدست آمد کوکی HTML درخواست اول نیز به وسیله درخواست دوم گذرانده می‌شود. نتیجه ورود به سیستم موفق در سرور ویکی مدیا ایجاد چندین HTTP کوکی می‌باشد. ربات باید این کوکی‌ها را ذخیره کند و هر زمانی که از سرور درخواست پاسخ می‌خواهد باید آنها را برای سرور بفرستد (قطعا این عملیات برای ویرایش باید انجام پذیرد).

در ویکی‌پدیا انگلیسی این کوکی‌ها باید مورد استفاده قرار گیرند:

enwikiUserID, enwikiToken,enwikiUserName

کوکی enwiki_session برای فرستادن و ویرایش و بعضی تغییرات لازم هست. در غیر این صورت پیام خطای MediaWiki:Session fail preview نمایان می‌گردد.

ویرایش با رمز ویرایش(edit tokens):

ویکی‌پدیا از سیستم رمز ویرایش edit tokens برای ویرایش صفحات ویکی‌پدیا همانند فعالیتهای دیگر مانند بازگشت به قبل rollback استفاده می‌کند. رمز مانند رشته به طول تقریبا 20-30 حرف با پسوند +\ می‌باشد. مانند مثال زیر: d41d8cd98f00b204e9800998ecf8427e+\ وظیفه رمز ویرایش (edit tokens) این هست که وقتی کاربر بر روی یک لینک به قصد ویرایش کلیک کرد بدون خروج از مرحله ویرایش بتواند به ویرایش خود ادامه دهد.

روند ویرایش شامل دو درخواست HTTP می‌باشد

  • درخواست ساخت رمز ویرایش

  • درخواست دوم HTTP باید انجام گیرد تا محتویات جدید صفحه همراه با رمز بفرستد.

امکان ویرایش با یک درخواست HTTP نمی‌باشد رمز ویرایش برای تمام مدت حضور در سیستم به یک مقدار ثابت می‌ماند و فقط یک بار نیاز به بازخوانی آن می‌باشد و پس از آن برای تمام مراحل ویرایش تا زمانی که کاربراز سیستم خارج نشود می‌تواند استفاده کند. برای بدست آوردن رمز ویرایش مراحل زیر را دنبال کنید.

ساخت و طراحی ربات ها
ساخت و طراحی ربات ها
(MediaWiki API (api.php

برای تولید یک درخواست پارامتر زیر را دنبال کنید برای اطلاع بیشتر mw:API:Edit - Create&Edit pages را مطالعه کنید

action=query

prop=info

titles=PAGENAME

intoken=edit

رمز به صورت رمز ویرایش ارایه می‌گردد. اگر رمز ویرایش دریافتی به صورت رشته به طول تقریبا 20-30 حرف نبود و فقط '+\' بود ربات نتوانسته به سیستم وارد شود.

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

  • اشکال در تایید حساب کاربر از طرف سرور می‌باشد

  • اتصال اینترنت قطع شده‌است

  • انواع مختلف خروج از زمان Timeout

  • اشکال در ذخیره یا بازگرداندن درست کوکی‌ها یا کوکی‌های مورد نظر

اگر این خطا به خاطر مشکل برنامه نویسی نباشد. از نو به سیستم وارد شوید تا کوکی‌ها از نو تعریف گردند. رباتها برای تشخیص اینکه در سیستم وارد شدهان یا نه از Assert Edit Extension می‌توانند استفاده کنند

نظر خود را درباره «ساخت و طراحی ربات ها» در کادر زیر بنویسید :
لطفا شرایط و ضوابط استفاده از سایت آسمونی را مطالعه نمایید
ارزیابی مهاجرت
: برای دریافت مشاوره درباره ساخت و طراحی ربات ها فرم زیر را تکمیل کنید

هزینه مشاوره ۳۰ هزار تومان می باشد

پاسخ مشاوره شما ظرف 1 روز کاری در پنل شما درج می شود و پیامک دریافت می کنید


دسته بندی های وب سایت آسمونی

آسمونی شامل بخش های متنوعی است که هر کدام از آنها شامل دنیایی از مقالات و اطلاعات کاربردی می باشند، شما با ورود به هر کدام از دسته بندی های مجله اینترنتی آسمونی می توانید به زیردسته های موجود در آن دسترسی پیدا کنید، برای مثال در دسته فیلم و سینما؛ گزینه هایی مثل نقد فیلم، معرفی فیلم ایرانی، فیلم بین الملل، انیمیشن و کارتون و چندین بخش دیگر قرار دارد، یا بخش سلامت وب سایت شامل بخش هایی همچون روانشناسی، طب سنتی، نکات تغذیه و تناسب اندام می باشد.