بات سازی ربات سازی
licenseمعنی کلمه بات سازی ربات سازی
معنی واژه بات سازی ربات سازی
اطلاعات بیشتر واژه | |||
---|---|---|---|
انگلیسی | robotics | ||
عربی | علم الروبوتات | ||
تشریح نگارشی | تشریح نگارش (هوش مصنوعی) برای نوشتن صحیح "روباتسازی" طبق قواعد فارسی و نگارشی، نکات زیر را مد نظر داشته باشید:
با توجه به موارد بالا، کلمه صحیح "روباتسازی" است. | ||
واژه | بات سازی ربات سازی | ||
معادل ابجد | 1162 | ||
تعداد حروف | 15 | ||
منبع | واژهنامه آزاد | ||
نمایش تصویر | معنی بات سازی ربات سازی | ||
پخش صوت |
رباتهای سایبری ویکیپدیا، ابزارها و فرایندهایی هستند که برای برقرار کردن ارتباط بهصورت اتوماتیک با ویکیپدیا به عنوان ویرایشگرانی که بشر آنها را هدایت میکند استفاده میشوند. در این صفحه راههای توسعه و ساخت ربات را برای استفاده در ویکیپدیا توضیح میدهیم. برای ساخت ربات، در ابتدا باید دانست که هدف ما از ساخت یک ربات چیست؟ تا بتوانیم برای پیشبرد این هدف تمام تلاش خود را انجام دهیم.
محتویات
چرا من باید یک ربات بسازم؟
رباتها به صورت خودکار توانایی انجام کارها را دارند و این یعنی سریعتر از انسانها عمل میکنند. برای انجام کارهای ساده نیازی به ربات نیست اما اگر شما نیاز دارید که کاری را به تعداد زیاد انجام دهید مثلاً: ممکن است شما نیاز پیدا کنید که یک الگویی را به تمام مقالههای موجود در یک رده (۱۰۰۰ مقاله) بیفزایید، پس راه مناسب برای انجام این کار طاقت فرسا استفاده از ربات به جای انسان است.
نکات قابل توجه قبل از ایجاد ربات
اینها تعدادی از رباتهای در حال اجرا در ویکیپدیا هستند.
اگر شما تصمیم به ساخت ربات گرفتهاید برنامه ریزی را مد نظر داشته باشید تا از خطاهای احتمالی جلوگیری کرده باشید، این مسایل باید مد نظر قرار گفته شوند:
آیابه صورت دستی ربات را فعال میکنید و یا اینکه ربات بهصورت اتوماتیک کار میکند؟
آیا ربات را به تنهایی ایجاد کردهاید و یا از رباتدارهای سایر زبانها کمک گرفتهاید؟
از چه زبانی برای پیادهسازی ربات استفاده کردهاید؟
آیا درخواستی برای پرچم دادهاید و اینکه آیا وارد سیستم شدهاید؟اگر اینگونهاست، کارهایی که با ربات انجام میدهید در سیاههها و تغییرات اخیر قابل رویت است و در صفحات ویکی ذخیره میشود.
آیا ربات را برای اجرا در وب آماده کردهاید و یا به روشهای دیگر و با زبانهای دیگر همچون جاوا اسکریپت آن را ساختهاید؟
اگر ربات را بوسیله برنامهای مستقل ساختهایدآیا آن را بر روی رایانه خودتان گذاشتهاید یا بر روی یک سرور مانند Toolserver و از راه دور آن را کنترل میکنید؟
اگر ربات قابل اجرا بر روی یک سرور از راه دور است، آیا ویراستاران دیگر قادر هستند که کار ربات یا شروع کار آن در زمان اجرا را ببینند؟
چگونه ربات در ویکیپدیا کار میکند؟
بررسی اجمالی عملکرد چرخه ویرایش
رباتها دقیقا همانند انسانها ویرایش میکنند با این تفاوت که اگر چه رباتها سریعتر از انسانها هستند و کمتر خسته میشوند اما آنها آن چیز که ما به آنها میگوییم را انجام میدهند. رباتها برای انجام کارهای تکراری همانند گذاشتن الگوها در مکانهای از پیش تعیین شده بسیار مناسب هستند. در اکثر موارد رباتها در ویکیپدیا با حساب کاربری خود وارد میشوند و از ویکیپدیا مانند مرورگرها درخواست صفحه میکنند ولی این صفحات را نمایش نمیدهند بلکه روی آنها در حافظه خود کار میکنند و به سختی روی کدهای صفحه در صورتی که نیاز باشد برای ویرایش کار میکنند و سپس تمام مواردی را که برای انجام آنها طراحی شدهاست را انجام میدهند و در ویکیپدیا ذخیره میکنند مانند مرورگرها. از آنجایی که روباتها مانند انسانها با صفحات وب مواجه میشوند به همین دلیل با مشکلات بسیاری روبرو میشوند از جمله قطع شدن ویرایش و به هم ریختگی ویرایش و خارج شدن از زمان و برخورد کردن با مشکلات غیر قابل پیش بینی. به همین جهت معمولا رباتها را برای انجام کارهای زیاد طراحی میکنند و در نظر گرفتن راه حل مناسب برای برخورد با این مشکلات در طراحی ربات نقش مهمی دارد.
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=۱ دقیقا برابر است و اجازه استخراج اطلاعات بیشتری را میدهد.
وضعیت: در ساختار کلیه سرورهای مدیا ویکی به صورت توکار موجود میباشد
بعضی از سروهای ویکیپدیا تنطیم شدهاند تا اجازه فشرده سازی محتویات را به کاربر بدهند gzip این عمل میتواند با یک خط دستور "Accept-Encoding: gzip" در بخش ابتدایی HTTP میتوان به محتویات فشرده شده دست یافت البته در صورتی که HTTP پاسخ "Content-Encoding: gzip" بدهد متنها به صورت فشرده هستند در غیر این صورت به صورت عادی ذخیره شدهاند. این مورد به نرم افزار ویکی مدیا ربطی ندارد بلکه به سرور بستگی دارد. همچنین ممکن است سایتهایی که از ویکی مدیا استفاده میکنند از فشرده سازی استفاده نکرده باشند.
ورود به سیستم:
مسلم هست که رباتها مانند انسانها باید در وبسایت برای ویرایش کردن وارد شوند. Login رباتها میتوانند بدون ورود به سیستم مطالب را بخوانند رباتهایی که آزمایش خود را پس دادند میتوانند با ورود به سیستم به ویرایش بپردازند. رباتها در قالب ورود به سیستم و داشتن پرچم میتوانند نتایج بسیاری برای هر query برای API ویکی مدیا داشته باشند. بسیاری از framworks رباتها باید ورود به سیستم و کوکیها را به صورت خودکار انجام دهد. اگر شما از این frameworks ها استفاده نمیکنید باید مراحل زیر را دنبال کنید. برای امنیت، اطلاعات ورود به سیستم باید از متدHTTP POST استفاده کند. به خاطر اینکه پارامتر HTTP GET به راحتی در URL قابل رویت میباشد. و ورود از طریق GET باید غیر فعال گردد. برای ورود ربات به سیستم برای استفاده از API ویکی مدیا دو مرحله درخواست لازم است.
درخواست ۱:
URL:
POST parameters:
lgname=BOTUSERNAME
lgpassword=BOTPASSWORD
اگر پسورد درست بود نتیجه "NeedToken" و رمز در قالب XML به عنوان نوشته در mw:API:Login باز میگردد. فرمتهای دیگر نیز امکان پذیر میباشد همچنین کوکیها را به شرح زیر باز میگرداند.
درخواست ۲: URL:
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 استفاده میکند. رمز مانند رشته به طول تقریبا ۲۰-۳۰ حرف با پسوند + میباشد. مانند مثال زیر: d41d8cd98f00b204e9800998ecf8427e+ وظیفه رمز ویرایش (edit tokens) این هست که وقتی کاربر بر روی یک لینک به قصد ویرایش کلیک کرد بدون خروج از مرحله ویرایش بتواند به ویرایش خود ادامه دهد.
روند ویرایش شامل دو درخواست HTTP میباشد
درخواست ساخت رمز ویرایش
درخواست دوم HTTP باید انجام گیرد تا محتویات جدید صفحه همراه با رمز بفرستد.
امکان ویرایش با یک درخواست HTTP نمیباشد رمز ویرایش برای تمام مدت حضور در سیستم به یک مقدار ثابت میماند و فقط یک بار نیاز به بازخوانی آن میباشد و پس از آن برای تمام مراحل ویرایش تا زمانی که کاربراز سیستم خارج نشود میتواند استفاده کند. برای بدست آوردن رمز ویرایش مراحل زیر را دنبال کنید.
(MediaWiki API (api.php
برای تولید یک درخواست پارامتر زیر را دنبال کنید برای اطلاع بیشتر mw:API:Edit - Create&Edit pages را مطالعه کنید
action=query
prop=info
titles=PAGENAME
intoken=edit
رمز به صورت رمز ویرایش ارایه میگردد. اگر رمز ویرایش دریافتی به صورت رشته به طول تقریبا ۲۰-۳۰ حرف نبود و فقط + بود ربات نتوانسته به سیستم وارد شود.
این مشکل ممکن است به علت موارد متفاوتی باشد:
اشکال در تایید حساب کاربر از طرف سرور میباشد
اتصال اینترنت قطع شدهاست
انواع مختلف خروج از زمان Timeout
اشکال در ذخیره یا بازگرداندن درست کوکیها یا کوکیهای مورد نظر
اگر این خطا به خاطر مشکل برنامه نویسی نباشد. از نو به سیستم وارد شوید تا کوکیها از نو تعریف گردند. رباتها برای تشخیص اینکه در سیستم وارد شدهان یا نه از Assert Edit Extension میتوانند استفاده کنند
این صفحه به ترجمه بیشتر نیاز دارد! برای همکاری میتوانید به این صفحه مراجعه کنید.
منابع
مشارکتکنندگان ویکیپدیا، «Wikipedia:Creating a bot»، ویکیپدیای انگلیسی، دانشنامهٔ آزاد (بازیابی در ۳ آگوست ۲۰۱۰).
رده: رباتهای ویکیپدیا
Robots or bots are automatic processes which interact with Wikipedia (and other Wikimedia projects) as though they were human editors. This page attempts to explain how to carry out the development of a bot for use on Wikimedia projects and much of this is transferable to other wikis based on Mediawiki. The explanation is geared mainly towards those who have some prior programming experience, but are unsure of how to apply this knowledge to creating a Wikipedia bot.
Contents
Why would I need to create a bot?
Bots can automate tasks and perform them much faster than humans. If you have a simple task that you need to perform lots of times (an example might be to add a template to all pages in a category with 1000 pages), then this is a task better suited to a bot than a human.
Considerations before creating a bot
It is often far simpler to request a bot job from an existing bot. If you have only periodic requests or are uncomfortable with programming languages, this is usually the best solution. These requests can be made at Wikipedia:Bot requests. In addition, there are a number of semi-bots available to anyone. Most of these take the form of enhanced web browsers with Mediawiki-specific functionality. The most popular of these is AutoWikiBrowser (AWB), a browser specifically designed to assist with editing on Wikipedia and other Wikimedia projects. A complete list of semi-bots can be found at Wikipedia:Tools/Editing tools. Semi-bots, such as AWB, can often be operated with little or no understanding of programming.
If you decide you need a bot of your own due to the frequency or novelty of your requirements, you dont need to write one from scratch. There are already a number of bots running on Wikipedia and many of these bots publish their source code, which can sometimes be reused with little additional development time. There are also a number of standard bot frameworks available for download. These frameworks comprise the vast majority of a bots code. Since these bot frameworks are in common usage and the complex coding has been done by others and has been heavily tested, it is far easier to get bots based on these frameworks approved for use. The most popular and common of these frameworks is PyWikipediaBot (PWB), a bot framework written in Python, which is well documented and tested and for which, in addition to the framework, many standardized scripts (bot instructions) are available. Other examples of bot frameworks can be found below. For some of these bot frameworks, such as PWB, a general familiarity with scripts is all that is necessary to run the bot successfully as the complex code that makes up the framework has been written and tested by others and is frequently updated (it is important to regularly apply the framework updates for these bots).
If you wish to write a new bot, be aware that it may require significant programming ability and a completely new bot will be required to undergo substantial testing before it will be approved for regular operation. Planning is crucial to obtain an error-free, efficient, and effective program. The following initial considerations are important:
Will the bot be manually assisted or fully automated?
Will you create the bot alone, or with the help of other programmers?
What language will be used to implement the bot?
Will the bots requests, edits, or other actions be logged? If so, will the logs be stored on local media, or on wiki pages?
Will the bot run inside a web browser (for example, written in Javascript), or will it be a standalone program?
If the bot is a standalone program, will it run on your local computer, or on a remote server such as the Wikimedia Toolserver?
If the bot runs on a remote server, will other editors be able to operate the bot or start it running?
How does a Wikipedia bot work?
Overview of operation
Just like a human editor, a Wikipedia bot reads Wikipedia pages, and makes changes where it thinks changes need to be made. The difference is that although bots are faster and less prone to fatigue than humans, they are nowhere near as bright as we are. Bots are good at repetitive tasks that have easily defined patterns, where few decisions have to be made.
In the most typical case, a bot logs in to its own account and requests pages from Wikipedia in much the same way as a browser does – although it does not display the page on screen, but works on it in memory – and then programmatically examines the page code to see if any changes need to be made. It then makes and submits whatever edits it was designed to do, again in much the same way a browser would.
Because bots access pages the same way people do, bots can experience the same kind of difficulties that human users do. They can get caught in edit conflicts, have page timeouts, or run across other unexpected complications while requesting pages or making edits. Because the volume of work done by a bot is larger than that done by a live person, the bot is more likely to encounter these issues. Thus, it is important to consider these situations when writing a bot.
APIs for bots
In order to make changes to Wikipedia pages, a bot necessarily has to retrieve pages from Wikipedia and send edits back. There are several Application Programming Interfaces (APIs) available for that purpose.
MediaWiki API (api.php). This library was specifically written to permit automated processes such as bots to make queries and post changes. Data is available in many different machine-readable formats (JSON, XML, YAML,...). Features have been fully ported from the older Query API interface, see the API manual page.
Status: Available on all Wikimedia projects, with a very complete set of queries. The ability to edit pages via api.php has also been enabled on all Wikimedia projects, enabling bots to operate entirely without screen scraping.
Screen scraping (index.php). Screen scraping involves requesting a Wikipedia page, looking at the raw HTML code (what you would see if you clicked View-"Source in most browsers), and then analyzing the HTML for patterns. There are certain problems with this approach: the Wikipedia interface can change without notice, which may break the bot code, and calling for HTML creates a larger server load than processing the wikitext itself. You can include an action=render GET request -w/index.php?title=Wikipedia:...&action=render – when you call the page to produce a stripped-down version of the page (without the Wikipedia sidebars and tabs) which reduces the amount of transferred data and eases the effects of changes in the user interface. Other parameters of index.php may be useful: see the partial list at Manual:Parameters to index.php. There are very few reasons to use this technique anymore and it is mainly used by older bot frameworks written before the API had as many features.
Status: Deprecated.
Special:Export can be used to obtain bulk export of page content in XML form. See Manual:Parameters to Special:Export for arguments;
Status: Built-in feature of MediaWiki, available on all Wikimedia servers.
Raw (Wikitext) page processing: sending a action=raw or a action=raw&templates=expand GET request to index.php will give the unprocessed wikitext source code of a page. An API query with prop=revisions&rvprop=content or prop=revisions&rvprop=content&rvexpandtemplates=1 is roughly equivalent, and allows for retrieving additional information.
Status: Built-in feature of MediaWiki, available on all Wikimedia servers.
Some Wikipedia web servers are configured to grant requests for compressed (gzip) content. This can be done by including a line "Accept-Encoding: gzip" in the HTTP request header; if the HTTP reply header contains "Content-Encoding: gzip", the document is in gzip form, otherwise, it is in the regular uncompressed form. Note that this is specific to the web server and not to the MediaWiki software. Other sites employing MediaWiki may not have this feature.
Logging in
Approved bots need to be logged in to make edits. Although a bot can make read requests without logging in, bots that have completed testing should log in for all activities. Bots logged in from an account with the bot flag can obtain more results per query from the Mediawiki API (api.php). Most bot frameworks should handle login and cookies automatically, but if you are not using an existing framework, you will need to follow these steps.
For security, login data must be passed using the HTTP POST method. Because parameters of HTTP GET requests are easily visible in URL, logins via GET are disabled.
To log a bot in using the MediaWiki API, 2 POST requests are needed:
Request 1
URL:
POST parameters:
lgname=BOTUSERNAME
lgpassword=BOTPASSWORD
If the password is correct, this will return a "NeedToken" result and a "token" parameter in XML form, as documented at mw:API:Login. Other output formats are available. It will also return HTTP cookies as described below.
Request 2
URL:
POST parameters:
lgname=BOTUSERNAME
lgpassword=BOTPASSWORD
lgtoken=TOKEN
where TOKEN is the token from the previous result. The HTTP cookies from the previous request must also be passed with the second request.
A successful login attempt will result in the Wikimedia server setting several HTTP cookies. The bot must save these cookies and send them back every time it makes a request (this is particularly crucial for editing). On the English Wikipedia, the following cookies should be used: enwikiUserID, enwikiToken, and enwikiUserName. The enwiki_session cookie is required to actually send an edit or commit some change, otherwise the MediaWiki:Session fail preview error message will be returned.
Editing; edit tokens
Wikipedia uses a system of edit tokens for making edits to Wikipedia pages, as well as other operations that modify existing content such as rollback. The token looks like a long hexadecimal number followed by +, for example:
d41d8cd98f00b204e9800998ecf8427e+The role of edit tokens is to prevent "edit hijacking", where users are tricked into making an edit by clicking a single link.
The editing process involves two HTTP requests. First, a request for an edit token must be made. Then, a second HTTP request must be made that sends the new content of the page along with the edit token just obtained. It is not possible to make an edit in a single HTTP request. An edit token remains the same for the duration of a logged-in session, so the edit token needs to be retrieved only once and can be used for all subsequent edits.
To obtain an edit token, follow these steps:
MediaWiki API (api.php). Make a request with the following parameters (see mw:API:Edit - Create&Edit pages).
action=query
prop=info
titles=PAGENAME
intoken=edit
The token will be returned in the edittoken attribute of the response.
If the edit token the bot receives does not have the hexadecimal string (i.e., the edit token is just +) then the bot most likely is not logged in. This might be due to a number of factors: failure in authentication with the server, a dropped connection, a timeout of some sort, or an error in storing or returning the correct cookies. If it is not because of a programming error, just log in again to refresh the login cookies. The bots may use Assert Edit Extension to make sure that they are logged in.
Edit conflicts
Edit conflicts occur when multiple, overlapping edit attempts are made on the same page. Almost every bot will eventually get caught in an edit conflict of one sort or another, and should include some mechanism to test for and accommodate these issues.
Bots that use the Mediawiki API (api.php) should retrieve the edit token, along with the starttimestamp and the last revision "base" timestamp, before loading the page text in preparation for the edit; prop=info|revisions can be used to retrieve both the token and page contents in one query (example). When submitting the edit, set the starttimestamp and basetimestamp attributes, and check the server responses for indications of errors. For more details, see mw:API:Edit - Create&Edit pages.
Generally speaking, if an edit fails to complete the bot should check the page again before trying to make a new edit, to make sure the edit is still appropriate. Further, if a bot rechecks a page to resubmit a change, it should be careful to avoid any behavior that could lead to an infinite loop and any behavior that could even resemble edit warring.
Overview of the process of developing a bot
Actually, coding or writing a bot is only one part of developing a bot. You should generally follow the development cycle below to ensure that your bot follows Wikipedias bot policy. Failure to comply with the policy may lead to your bot failing to be approved or being blocked from editing Wikipedia.
Overview of Wikipedia bot development cycle
Idea
The first task in creating a Wikipedia bot is extracting the requirements or coming up with an idea. If you dont have an idea of what to write a bot for, you could pick up ideas at requests for work to be done by a bot.
Make sure an existing bot isnt already doing what you think your bot should do. To see what tasks are already being performed by a bot, see the list of currently operating bots.
Specification
Specification is the task of precisely describing the software to be written, possibly in a rigorous way. You should come up with a detailed proposal of what you want it to do. Try to discuss this proposal with some editors and refine it based on feedback. Even a great idea can be made better by incorporating ideas from other editors.
In the most basic form, your specified bot must meet the following criteria:
The bot is harmless (it must not make edits that could be considered disruptive to the smooth running of the encyclopedia)
The bot is useful (it provides a useful service more effectively than a human editor could)
The bot does not waste server resources.
Software architecture
Think about how you might create it and which programming language(s) and tools you would use. Architecture is concerned with making sure the software system will meet the requirements of the product as well as ensuring that future requirements can be addressed. Certain programming languages are better suited to some tasks than others, for more details see the section on programming languages below.
Implementation
Implementation (or coding) involves turning design and planning into code. It may be the most obvious part of the software engineering job but it is not necessarily the largest portion. In the implementation stage you should:
Create a user page for your bot. Your bots edits must not be made under your own account. Your bot will need its own account with its own username and password.
Add the same information to the user page of the bot. It would be a good idea to add a link to the approval page (whether approved or not) for each function.
Code your bot in your chosen programming language.
Testing
A good way of testing your bot as you are developing is to have it show the changes (if any) it would have made to a page, rather than actually editing the live wiki. Some bot frameworks (such as pywikipedia) have pre-coded methods for showing diffs. During the approvals process, the bot will most likely be given a trial period (usually with a restriction on the number of edits or days it is to run for) during which it may actually edit to enable fine-tuning and iron out any bugs. At the end of the trial period, if everything went according to plan, the bot should get approval for full-scale operation.
Documentation
An important (and often overlooked) task is documenting the internal design of your bot for the purpose of future maintenance and enhancement. This is especially important if you are going to allow clones of your bot. Ideally, you should post up the source code of your bot on its userpage if you want others to be able to run clones of it. This code should be well documented (usually using comments) for ease of use.
Queries/Complaints
You should be ready to respond to queries about or objections to your bot on your user talk page, especially if it is operating in a potentially sensitive area, such as fair-use image cleanup.
Maintenance
Maintaining and enhancing your bot to cope with newly discovered bugs or new requirements can take far more time than the initial development of the software. Not only may it be necessary to add code that does not fit the original design but just determining how software works at some point after it is completed may require significant effort (this is another reason to document your code as you go along).
If you want to make a major functionality change to your bot in the future, you should request this as above using the requests for bot approval.
General guidelines for running a bot
In addition to the official bot policy, which covers the main points to consider when developing your bot, there are a number of more general advisory points to consider when developing your bot.
Bot best practices
Set a custom User-Agent header for your bot, per the Wikimedia User-Agent policy. If you dont, your bot may encounter errors and may end up blocked by the technical staff at the server level.
Use the maxlag parameter with a maximum lag of 5 seconds. This will enable the bot to run quickly when server load is low, and throttle the bot when server load is high.
If writing a bot in a framework that does not support maxlag, limit the total requests (read and write requests together) to no more than 10/minute.
Use the API whenever possible, and set the query limits to the largest values that the server permits, to minimize the total number of requests that must be made.
Edit (write) requests are more expensive in server time than read requests. Be edit-light and design your code to keep edits to a minimum.
Try to consolidate edits. One single large edit is better than 10 smaller ones.
Enable HTTP persistent connections and compression in your HTTP client library, if possible.
Do not make multi-threaded requests. Wait for one server request to complete before beginning another
Back off upon receiving errors from the server. Errors such as squid timeouts are often an indication of heavy server load. Use a sequence of increasingly longer delays between repeated requests.
Make use of the Assert Edit extension, an extension explicitly designed for bots to check certain conditions, which is enabled on Wikipedia.
Test your code thoroughly before making large automated runs. Individually examine all edits on trial runs to verify they are perfect.
Common bot features you should consider implementing
Manual assistance
If your bot is doing anything that requires judgment or evaluation of context (e.g., correcting spelling) then you should consider making your bot manually-assisted, which means that a human verifies all edits before they are saved. This significantly reduces the bots speed, but it significantly reduces errors.
Disabling the bot
It is good bot policy to have a feature to disable the bots operation if it is requested. Remember that if your bot goes bad, it is your responsibility to clean up after it! You could have the bot refuse to run if a message has been left on its talk page, on the assumption that the message may be a complaint against its activities; this can be checked using the API meta=userinfo query (example). Or you could have a page that will turn the bot off if text on the page is changed (e.g. require the page be empty, contain only the word "True", or something similar); this can be checked by loading the page contents before each edit.
Signature
Just like a human, if your bot makes edits to a talk page on Wikipedia, it should sign its post with four tildes (~~~~). Remember that signatures belong only on talk namespaces, and your bot should not be programmed to sign its name on any other pages.
Open-source bots
Many bot operators choose to make their code open source, and occasionally it may be required before approval for particularly complex bots. Making your code open source has several advantages:
It allows others to review your code for potential bugs. As with prose, it is often difficult for the author of code to adequately review it.
Others can use your code to build their own bots. A user new to bot writing may be able to use your code as an example or a template for their own bots.
It encourages good security practices, rather than security through obscurity.
If you leave the project, it allows other users to run your bot tasks without having to write new code.
Open-source code, while rarely required, is typically encouraged in keeping with the open and transparent nature of Wikipedia, though there are some cases when code should not be made public. For example, the open proxy-finding code of ProcseeBot could be used for malicious purposes on other sites.
Making code open source can add some extra work to coding. One has to make sure that sensitive information such as passwords is separated into a file that isnt made public.
There are several options available for users wishing to make their code open. Some users choose to put the code in a subpage of the bots userspace, although this can be a hassle to maintain if not automated and results in the code being multi-licensed under Wikipedias licensing terms in addition to any other terms you may specify. Another solution is to use a revision control system such as SVN, Git, or Mercurial. Wikipedia has articles comparing the different software options and websites for code hosting, many of which have no cost. The Wikimedia Toolserver also offers SVN hosting for its users.
Programming languages and libraries
See also: mw:API:Client code
Bots can be written in almost any programming language. The choice of a language often depends on the experience of the bot writer (which languages are familiar) or on the availability of pre-developed libraries to perform the desired task. The following list includes some languages that have libraries to assist with bot tasks.
Perl
Perl has a run-time compiler. This means that it is not necessary to compile builds of your code yourself as it is with other programming languages. Instead, you simply create your program using a text editor such as gvim. You then run the code by passing it to an interpreter. This can be located either on your own computer or on a remote computer (webserver). If located on a webserver, you can start your program running and interface with your program while it is running via the Common Gateway Interface from your browser. Perl is available for most operating systems, including Microsoft Windows, Mac OS X and UNIX/Linux. If your internet service provider provides you with webspace, the chances are good that you have access to a perl build on the webserver from which you can run your Perl programs.
Guides to getting started with Perl programming:
A Beginners Introduction to Perl
CGI Programming 101: Learn CGI Today!
Perl lessons
Get started learning Perl
Libraries:
MediaWiki::API – A Perl module for interfacing at a low level with the MediaWiki API, allowing information retrieval, editing, and file upload/download.
MediaWiki::Bot – A fairly complete MediaWiki bot framework written in Perl. Provides a higher level of abstraction than MediaWiki::API. Plugins provide administrator and steward functionality.
Anura – Perl interface to MediaWiki using libwww-perl. Not recommended, as the current version does not check for edit conflicts.
WWW::Mediawiki::Client – perl module and command line client
WWW::Wikipedia – perl module for interfacing wikipedia
Perl Wikipedia ToolKit – perl modules, parsing wikitext and extracting data
MediaWiki CPAN Packagelink by Edward Chernenko – has a rich API, but also several critical bugs.
Mediawiki::API – a library by CBM with robust automatic error handling and wrappers for many common API.php uses. This is not the same as the library on CPAN.
PHP
PHP can also be used for programming bots. MediaWiki developers are already familiar with PHP, since that is the language MediaWiki and its extensions are written in. PHP is an especially good choice if you wish to provide a webform-based interface to your bot. For example, suppose you wanted to create a bot for renaming categories. You could create an HTML form into which you will type the current and desired names of a category. When the form is submitted, your bot could read these inputs, then edit all the articles in the current category and move them to the desired category. (Obviously, any bot with a form interface would need to be secured somehow from random web surfers.)
The PHP bot functions table may provide some insight into the capabilities of the major bot frameworks.
Current PHP Bot frameworks
Key people1 Name PHP Version last update Uses API2 Exclusion compliant Admin functions Plugins Repository Notes
Adam BasicBot 5 or 4 2007 Unknown Unknown No No wikisum.com Fairly out of date
X!, others Peachy 5.2.1 2010 Yes Yes Yes Yes Google Code Large framework, currently undergoing rewrite. Documentation is down. Stopped at jul/2010.
Kaspo Phpwikibot Unknown 2009 Partial No No No Google Code Uses a single class.
Jarry1250 Wikibot 5 2009 Yes Yes No No enwiki Used solely by LivingBot. A fork of Phpwikibot. Uses a single class.
Foxy Loxy PHPediaWiki 5 2009 Yes No Yes No SourceForge Fork of SxWiki
Sam Korn Pillar 5 2009 Yes Yes Yes No Google Code MIT license
User:nzhamstar Wikimate 5.3.2 2012 Yes No No No Github Supports main article stuff. Authentication, Reading and editing pages/sections, checking if pages exist. Tested and working. Aims to be easy to use.
Григор Гачев Apibot 5.1 2011 Yes Yes Yes No Apibot code Full API support, compression, HTTP auth etc. Over 300 basic module functions. Overlayed iterator framework.
Kaleb Heitzman MediaWIkiBot 5 2012 Yes No No No Github Supports the entire API including uploading and importing. Also supports Semantic MediaWiki. Single Class that creates dynamic methods to work with any of the API calls.
Edward Z. Yang Wikpedia Bot in PHP Unknown 2005 No No No No enwiki "Probably stale" source code
GeorgeMoney Bot Framework 5 or 4 2006 Unknown Unknown Unknown No enwiki Hard to get hold of current code
Cobi wikibot.classes 5 2010 Yes Yes No No enwiki Used by multiple large bots (e.g. ClueBot and SoxBot). Uses several classes.
Chris G botclasses.php 5 2012 Yes Yes Yes No Toolserver Fork of wikibot.classes. Updated for 2010 API changes. Supports file uploading.
^ Does not include those who worked on frameworks forked to create listed framework.
^ Where possible. Excludes uploading images and other such tasks which are not currently supported by the API.
Python
Python is a popular interpreted language with object-oriented features.
Getting started with Python
Official Python tutorial
Beginners Guide to coding in python
Dive Into Python
Libraries
PyWikipediaBot — Python Wikipedia Robot Framework (Home Page, SF Project Page)
wikitools — A lightweight bot framework that uses the MediaWiki API exclusively for getting data and editing, used and maintained by Mr.Z-man (downloads)
mwclient — An API-based framework maintained by Bryan
Microsoft .NET
Microsoft .NET is a set of languages including C#, C++/CLI, Visual Basic .NET, J#, JScript .NET, IronPython, and Windows PowerShell. The Microsoft Visual Studio integrated development environment is often used, or the free Microsoft Visual Studio Express versions. Using Mono Project, .NET programs can also run on Linux, Unix, BSD, Solaris and Mac OS X as well as under Windows.
Getting started:
Add links here!
MSDN Visual Basic portal
MSDN Visual C# portal
Libraries:
DotNetWikiBot Framework – a full-featured client API on .NET, that allows to build programs and web robots easily to manage information on MediaWiki-powered sites. Now translated to several languages. Detailed compiled documentation is available in English.
WikiFunctions .NET library – Bundled with AWB, is a library of stuff useful for bots, such as generating lists, loading/editing articles, connecting to the recent changes IRC channel and more.
WikiAccess library
MediaWikiEngine, used by Commonplace upload tool
Tyng.MediaWiki class library, a MediaWiki API written in C# used by NrhpBot
Java
Java programs are generally developed with an IDE, such as Eclipse; development using a command line console (with the javac and java programs) is also an option.
Getting started:
Getting started
Libraries:
Java Wiki Bot Framework
User:MER-C/Wiki.java
JavaScript
JavaScript is a scripting language used mainly on web pages. JavaScript can be used to enhance the Wikipedia by adding scripts to your vector.js or your monobook.js pages. In some circumstances it is also possible to execute scripts off-site.
Libraries:
Luasóg is javascript framework of standard requests (e.g. log in, log out, read, edit, etc.) as well as a general wrapper method for the MediaWiki API and includes helpful stuff like throttling. The project includes a rudimentary IDE for off-site development and execution.
Ruby
Libraries:
MediaWiki::Gateway – Ruby framework for the API. Actively maintained, tested up to MediaWiki 1.16, compatible with Wikimedia wikis.
rbmediawiki is a framework for writing bots in Ruby. It uses MediaWikis API. Author Ignacio Icke.
Chicken Scheme
Iron Chicken is an extension or "egg" for Chicken Scheme that makes the Mediawiki API programmable using s-expressions, and presents API and HTML output as SXML which can be queried easily.
A simple example that gets members of a category and writes them to a page in the client users userspace is:
User:Tony Sidaway/scripts/categorymembers
Libraries:
irnc-base
Common Lisp
cl-mediawiki implements MediaWiki API as a Common Lisp package. Is planned to use JSON as a query data format. Supports maxlag and assert edit extensions.
Haskell
Tcl
MediaWiki Tcl Bot Framework, includes IRC-RC Interface
С++/Qt4.5
simple media wiki bot, written on С++/Qt and with only few functions like auth, get page source, put page source. (sources are published on Russian language forum – see attachment to topic.)
VBScript
VBScript is a scripting language based on the Visual Basic programming language. A VBScript engine is installed by default on most Windows machines, making installation of additional frameworks unnecessary (and making distribution of scripts easy). VBScript used by many system administrators as an automation tool. It can be used to easily control Internet Explorer to automate repetitive tasks.
Getting started:
VBScript, MSDN
Windows Script 5.6 Documentation, Microsoft
InternetExplorer Object, MSDN
Document Object, MSDN
Displaying Data by Using Internet Explorer, TechNet
Examples:
User:Smallman12q/Scripts/cleanuplistingtowiki - Login and give preview of edit
User:Smallman12q/VBS/Savewatchlist - Login, get raw watchlist, save to file, logout, close IE
Categories: Wikipedia bots
قس فرانسه
Les robots ou bots sont des contributeurs particuliers de Wikipédia puisqu’ils interagissent selon des processus automatiques ou semi-automatiques. Cet article vous expliquera comment dresser votre propre bot pour l’utiliser sur Wikipédia.
Sommaire
Pourquoi créer un bot ?
Les bots permettent d’automatiser des tâches répétitives et de les exécuter beaucoup plus rapidement qu’un humain. Si vous avez régulièrement besoin de réaliser des tâches répétitives (ajout d’un modèle, par exemple « bandeau portail » à toutes les pages d’une catégorie), il est plus adapté de les exécuter à l’aide d’un bot.
Quest-ce quun bot ?
Un bot est un programme qui sexécute sur votre ordinateur — ou sur un ordinateur distant.
Dresser un bot consiste à programmer ce bot et à le faire fonctionner.
Que fait un bot ?
Comme vous, il opère sur le contenu de lencyclopédie, en communicant ses opérations aux serveurs hébergeant Wikipédia par les méthodes du protocole Les différents types de communication consistent principalement en lobtention (GET), la publication (POST), linsertion (PUT) et la suppression (DELETE) de données.
Comme vous, le bot interfère avec la ressource Wikipédia dont il est un agent : Wikipédia lui envoie les informations dont il a besoin — telles que lhistorique, le contenu ou des listes de pages — ; le bot les traite afin de déterminer les améliorations à leur apporter ; puis il interfère de nouveau avec Wikipédia pour opérer les améliorations.
Certains jouent aussi le rôle de majordome de salon IRC1.
Il y a bien une différence tout de même ?!
Outre votre humanité et votre traitement réfléchi et volontaire des données de Wikipédia , la différence se situe au niveau des interfaces :
Pour accéder au contenu, vous naviguez avec un navigateur web dans un affichage dinformations codées en langage XHTML (voir le code source de cette page dans le menu « Affichage » de votre navigateur).
Le bot, lui, récupère les données en utilisant linterface de programmation de MediaWiki. Il accède ensuite par analyse syntaxique de ces données, codées en langage XML ou autres — JSON, YAML, WDDX, PHP sérialisé —, aux informations contenues.
Le bot communique donc par les canaux du Web pour obtenir de Wikipédia un accès aux données, dans le format que lon souhaite manipuler.
Est-ce que je dois créer un bot moi-même ?
Cette page daide est plus particulièrement destinée à ceux qui ont une certaine expérience de la programmation, mais ne sont pas sûrs de la façon dappliquer ces connaissances à la création dun bot Wikipédia.
Si cette expérience vous manque, mieux vaut faire appel aux bots existants. Des dresseurs expérimentés sauront traiter vos demandes (adaptation de bots, exécution de requêtes particulières) et sauront vous conseiller.
Sachez encore que vous pouvez également utiliser un logiciel semi-automatique comme Auto-Wiki Browser (gratuit) ou comme Robotic Easy (payant).
Si vous voulez néanmoins essayer de créer votre propre bot, alors cet article vous concerne.
Note : Si vous navez aucune expérience préalable de la programmation : il faut tout de même savoir que lapprentissage dun langage de programmation nest pas trivial. Néanmoins, ce nest pas non plus de la magie noire ! Avec suffisamment de temps et de travail, vous pourrez tout de même y parvenir !
Comment fonctionne un bot sur Wikipédia ?
Vue d’ensemble
À l’instar d’un éditeur humain, un bot peut lire le contenu de Wikipédia, prendre des décisions en fonction du contenu et, le cas échéant, calculer les modifications puis modifier le contenu de Wikipédia. Toutefois, les ordinateurs sont plus efficaces que lhomme pour certaines tâches, mais moins bons pour dautres. Ils sont plus rapides (les bots sont capables de modifier plusieurs pages par minute) et peuvent mener à bien des tâches répétitives, mais ils ne peuvent faire de modifications importantes sur le fond ou émettre des jugements de valeur pertinents sur le contenu de la page.
Comme un éditeur humain, un bot typique va interopérer avec Wikipédia au travers dune ou plusieurs requêtes à Wikipédia via la méthode GET du protocole HTTP (tout comme un être humain le fait au travers de son navigateur), puis effectuer des manipulations sur les données renvoyées par le serveur. Si besoin, ce processus peut se répéter plusieurs fois de suite pour compléter le travail.
Par exemple, un bot peut demander au serveur la liste des pages contenant un lien vers une page spécifique ([ Special:Whatlinkshere|liste des pages contenant un lien vers une page spécifique ]) par une requête de type « Je veux Special:Whatlinkshere/Nom ». Le bot agira ensuite en fonction du contenu HTML renvoyé par le serveur.
Interfaces de programmation (API) pour les bots
Les API décrivent les fonctions qui permettent dinteragir avec Wikipédia.
LAPI la plus commune est la capture de données décran. Cela consiste à appeler la page Wikipédia, à en afficher le code HTML brut (à la manière dun opérateur humain qui demande laffichage du « code source » via son navigateur) pour en extraire les données intéressantes. Cette manière de faire nest pas recommandée du fait que linterface (et donc la structure de la page) peut changer à tout moment et que cela occasionne une forte charge du serveur. Mais cest actuellement la seule façon de récupérer une page wiki formatée en HTML. Cest également le seul moyen de réaliser des éditions à partir de la page dédition et faire une publication HTTP (POST) basée sur les informations du formulaire dédition.
Vous pouvez passer action=render à la page index.php afin de réduire la quantité de données à transférer et la dépendance à linterface utilisateur. Dautres paramètres dindex.php peuvent être utiles : Manual:Parameters to index.php est une liste partielle de ces paramètres et des valeurs quils peuvent prendre.
Dautres API peuvent être utilisées :
MediaWiki API extension - Cest la nouvelle génération dAPI qui devrait un jour être étendue pour inclure la publication de données (data posting) aussi bien que diverses requêtes sur les données. Aujourdhui, un certain nombre de fonctionnalités ont été implémentées, telles que la révision de contenu, la journalisation des évènements, les listes de suivi et bien dautres. Les données peuvent être traitées dans différents formats (JSON, XML, YAML, ...). Les fonctionnalités de lancienne interface (Query API) de requêtes ont également été portées.
Statut : les fonctions du moteur sont partiellement implémentées ; disponible sur tous les serveurs Wikimédia.
Fonctionnalités pour exporter des pages (export de données au format XML). Voir Parameters to Special:Export pour la liste de paramètres.
Statut : Production. Fonctionnalités des moteurs ; disponible sur tous les serveurs Wikimédia.
Pages natives (brutes) : en passant action=raw ou action=raw&templates=expand à index.php, on peut accéder directement au code source des pages.
Les serveurs Wikipédia sont configurés pour traiter les requêtes sur du contenu compressé au format (gzip). Ceci peut être fait en incluant une ligne « Accept-Encoding: gzip » dans len-tête de la requête Si la réponse contient « Content-Encoding: gzip », le document est un document compressé, sinon, cest un fichier au format ordinaire non-compressé ; ne pas vérifier lentête de la réponse peut conduire à des résultats erronés (notez que cette fonctionnalité est spécifique aux serveurs Wikipédia. Elle nest pas liée au logiciel MediaWiki. Les autres sites utilisant MediaWiki ne disposent pas forcément de la fonctionnalité).
Exemple
API.php
Linterface de programmation du service web (agent "-" ressource) Wikipédia est disponible ici :
Kézako ? Vous (ou votre robot) êtes un agent et Wikipédia est votre ressource. Vous communiquez avec elle via le protocole de requêtes http pour lui demander de vous envoyer certaines données (par exemple le contenu de toutes les pages dune certaine catégorie, ou la liste des derniers inscrits) qui vous sont remises en XML ou en dautres formats. Vous ou votre robot pouvez ensuite traiter ces données (par exemple chercher et corriger une faute dorthographe parmi le texte des articles) puis de nouveau, via le protocole utiliser les commandes de lAPI. Par exemple, pour remplacer du texte, il faut utiliser les commandes suivantes de lAPI : action et ses paramètres login (pour vous logger), query (pour obtenir le texte), edit (pour modifier ce texte) et sans doute quelques autres tels que minor (pour marquer votre modification comme étant mineure) et summary (pour inclure un résumé de votre modification).
Obtenir les informations à propos de la dernière révision de la page Accueil :
api.php ? action=query & prop=info|revisions & titles=Accueil
"?xml version="1.0"?"
"api"
"query"
"pages"
"page pageid="3084756" ns="0" title="Accueil" touched="2009-05-14T15:23:48Z" lastrevid="40759274" counter="0" length="3405""
"revisions"
"rev revid="40759274" minor="" user="Xfigpower" timestamp="2009-05-11T11:35:43Z" comment="corr lien modèle" /"
"/revisions"
"/page"
"/pages"
"/query"
"/api"
Le 14 mai 2009 à 17:36 (CEST), le dernier revisionuser était Xfigpower (d • c • b) - cette information est contenue dans la chaîne « user="Xfigpower" » - le 11 mai 2009, qui a résumé sa modification par le commentaire « corr lien modèle ». Pour connaître le dernier réviseur de la page daccueil en ce moment, cliquez sur le lien ci-dessus qui affiche ce document XML.
résultat de commandes dans différents formats
Connexion en tant que bot (fonctions décriture sur Wikipédia)
Il est nécessaire pour un bot agréé de se connecter sous son compte utilisateur avant de pouvoir réaliser des éditions. Un bot est libre de faire des requêtes de lecture sans être connecté, mais il devrait idéalement se connecter pour toute activité.
Le bot peut se connecter de plusieurs manières (remplacer BOTUSERNAME et BOTPASSWORD par les valeurs adéquates) :
via une requête POST passée en URL de la forme en passant les données wpName=BOTUSERNAME&wpPassword=BOTPASSWORD&wpRemember=1&wpLoginattempt=Log+in
via API, en utilisant un URL comme
pour des questions de sécurité, il est plus sûr dutiliser le protocole et denvoyer lgname=BOTUSERNAME&lgpassword=BOTPASSWORD avec la méthode POST.
Une fois connecté, le bot doit sauvegarder les cookies Wikipédia et sassurer quil les renvoie correctement lors des requêtes dédition.
La réponse contient le paramètre cookieprefix qui contient le préfixe des noms des cookies de login à envoyer systématiquement pour toute nouvelle requête pour utiliser ce login. Ces cookies sont les suivants :
cookieprefixUserID (frwikiUserID pour Wikipédia en français)
Identifiant de lutilisateur.
cookieprefixToken (frwikiToken pour Wikipédia en français)
Jeton de connexion utilisateur.
cookieprefixUserName (frwikiUserName pour Wikipédia en français)
Nom de lutilisateur.
cookieprefix_session (frwiki_session pour Wikipédia en français)
Cet Identifiant de session est exigé pour réaliser effectivement lédition (ou soumettre une modification) ; sinon, ce message apparaît.
Voir API:Login, Hypertext Transfer Protocol et Cookie HTTP pour plus de détails.
Jetons de modification (Edit tokens)
Wikipedia utilise un système de jetons de modification ((en)edit tokens) lors de lédition de pages et pour certaines autres opérations.
La conséquence est que votre bot ne peut envoyer directement de requête POST via HTTP pour éditer une page. À limage dun éditeur humain, il doit suivre un certain nombre détapes :
Appel de la page à laide dune chaîne comme ou
Le bot reçoit une page dédition avec un champ de texte. Il reçoit également (et cest important) un jeton de modification, en tant que champ caché dans un code de formulaire html. Le jeton ressemble à quelque chose comme : b66655fjr7fd5drr3411ss23456s65eg. Ce jeton est associé à la session PHP courante (identifiée par le jeton enwiki_session). Le même jeton peut être utilisé pour éditer dautres pages, aussi longtemps que la session dure (en général quelques heures). Si vous utilisez lAPI, il faut récupérer lattribut edittoken.
Le bot doit ensuite réaliser lopération de modification effective de la page en revoyant une requête adaptée accompagnée du jeton de modification.
Pourquoi ai-je reçu un jeton (quasiment) vide ?
Il est possible que votre bot reçoive un jeton vide ou "+". Cest une indication que le bot nest pas connecté. Cela peut être dû à une erreur lors de lauthentification par le serveur, ou une erreur denregistrement et de restitution des cookies corrects.
Conflits dédition
Il y a une forte probabilité que votre bot soit confronté à des "conflits dédition" : cela a lieu si un utilisateur réalise une édition entre le moment où vous faites une requête de modification (obtention du jeton dédition) et celui où vous réalisez effectivement la modification. Un autre type de conflit dédition concerne les éditions/suppressions de page, quand une page est détruite entre le moment où le formulaire dédition de la page est ouvert et celui où il est publié.
Lerreur en résultant peut provoquer un résultat incorrec
robotics
علم الروبوتات
برای نوشتن صحیح "روباتسازی" طبق قواعد فارسی و نگارشی، نکات زیر را مد نظر داشته باشید:
-
استفاده از واژههای مصطلح: واژه "روبات" یک واژه اقتباس شده است و به همین دلیل، در نوشتار باید به شکل صحیح آن توجه شود.
-
جداسازی ترکیبها: وقتی کلمه "ربات" با "سازی" ترکیب میشود، معمولاً این دو کلمه به هم وصل میشوند. بنابراین، به شکل "روباتسازی" نوشته میشود.
-
تلفظ صحیح: در نظر داشته باشید که در تلفظ کلمه، باید به "ر" و "ب" توجه کنید تا بهدرستی ادا شود.
- نقطهگذاری: در مواردی که با عناوین مختلف ترکیب میشوند (مانند "رباتسازی پیشرفته" یا "رباتسازی آموزشی")، باید توجه کنید که نقطهگذاریها و نگارشی دیگر موارد صحیح باشد.
با توجه به موارد بالا، کلمه صحیح "روباتسازی" است.