Jump to navigation Jump to search
This page is a translated version of the page Manual:Pywikibot/ and the translation is 3% complete.
Other languages:
English • ‎català • ‎español • ‎français • ‎italiano • ‎suomi • ‎čeština • ‎русский • ‎العربية • ‎日本語 • ‎한국어
Git logo
Wikimedia Git repository has this file: scripts/ru is the python program that logs the user running the pywikibot on to the system using the data that can be found in .

Login as a bot

Bots provide specified result and as a consequence, they should not need the attention that other changes require. By having a specific user to run the bot software, the changes created in this way will be hidden on a typical recent changes screen. Bot status is given when a community is in favour with someone running a bot.

If you want to login also with your sysop account (deleting moved categories...) you have to add

sysopnames['wikiproject']['languagecode'] = 'YourSysopUsername'

to and start with the -sysop parameter

How it knows where to login

In the file there are three components:

  1. the language: mylang
  2. the family: family - this indicates wiki name, including wikipedia or wiktionary
  3. the username: username - this can be any user but it should be a user who is registered to run as a bot.

In order to login to all the projects/languages mentioned in, the option -all can be used, and if the same password is used throughout all these projects, it can be combined with -pass so that the program doesn't ask for a password for each site.

python -all -pass

will login on all projects in, using the same password for all. For now, using -pass option is not supported. (T102477) You should use password file instead. Create file with text like '("en", "wikipedia", "User", "password")' (you can use more than one line). Then, insert in your file 'password_file = "path_to_password_file"' line. After this Pywikibot should use data from this file when he need to login.


python login -logout

Login using OAuth

Pywikibot supports login using OAuth authentication instead of password. The OAuth feature needs the site with Extension:OAuth installed and configured properly. OAuth is more secure (passwords are not sent over the internet, can be invalidated at any time, and the permissions of the bot user can be restricted) and should generally be preferred over normal login. See Manual:Pywikibot/OAuth on how to use it (it does not involve

If for some reason you want to log your bot in as a multi-user OAuth app (not recommended, but e.g. older MediaWiki might not support owner-only apps), you can use for that, with the option -oauth. The process contains the following steps:

  1. Create OAuth app at Special:OAuthConsumerRegistration/propose on meta if it does not exist yet, and record the consumer key and secret
  2. Run python -oauth
  3. Input OAuth consumer key
  4. Input OAuth consumer secret
  5. Authenticate user via web browser. You may need to manually copy the url from the terminal if the web browser doesn't open up automatically.
  6. Input response query string to terminal when authentication succeeds. E.g.: oauth_verifier=xxx&oauth_token=yyy
  7. Copy and paste authentication entry generated into .
-logout, -pass, -force, -pass:XXXX and -sysop are not compatible with -oauth.

Глобальные аргументы доступны

Эти параметры переопределяют настройки параметров в .

Глобальные параметры
ПараметрОписаниеКонфигурационная переменная
-dir:PATH Прочитать настройки бота из каталога, заданному переменной PATH, а не из каталога по умолчанию.  
-lang:xx Установить язык Вики с которой вы хотите работать. ХХ должен быть код языка. (ru) mylang
-family:xyz Установите семейство Вики с которой вы хотите работать, например, Википедия, викисловарь, викисклад, викитрэвел, ... Переопределяет конфигурацию в family
-user:xyz Войдите в систему как пользователь 'xyz' вместо пользователя по умолчанию. usernames
-daemonize:xyz Немедленно возвращает управление терминалу и перенаправляет stdout и stderr в файл xyz (использовать только для ботов, которые не требуют ввода из stdin).  
-help Показать справку.  
-log Включить лог-файл. Журналы будут храниться в подкаталоге logs. log
-log:xyz Включить лог-файл, используя 'xyz' в качестве имени файла. logfilename
-nolog Отключить лог (если он включен по умолчанию).  
-maxlag Устанавливает новый параметр - maxlag (число секунд). Defer bot edits during periods of database server lag. Default is set by maxlag
Указать минимальное время (в секундах) которое бот будет ждать после сохранения страниц. put_throttle
Включить лог-файл и включить расширенные отладочные данные для компонента "item(элемент)" (для всех компонентов, если используется последующая форма). debug_log
Have the bot provide additional console output that may be useful in debugging. verbose_output
Переключает настройки cosmetic_changes в или в противоположные или отменяет их. All other settings and restrictions are untouched. cosmetic_changes
-simulate Запрещается запись на сервер. Useful for testing and debugging of new code (if given, doesn't do any real changes, but only shows what would have been changed). simulate
-<config var>:n Вы можете использовать все заданные числовые настройки переменных как параметр и изменить его из командной строки.  

См. также