Википедия:Рекомендации юному ботоводу

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Боты

Правила · Рекомендации · Запросы · FAQ · Орден · Форум

Когда нужен бот?[править код]

Бот нужен для массовых работ, когда очень нудно повторять одно и то же действие много раз. Пусть машина делает «грязную» работу, а человек может мыслить над новой статьёй.

Ниже приведено несколько примеров.

Переименование категорий[править код]

Для переименования категорий есть специальный модуль pywikipediabot’а.

python category.py move -from:"старое название категории" -to:"новое название категории"

Этой командой создаётся новая категория (если её ещё нет) как точная копия старой, во всех статьях, включённых в категорию, меняется название категории и в конце отмечается теперь уже пустая старая категория к удалению. Переименование категорий с помощью бота гораздо предпочтительнее переименования вручную, так как это не только экономит время (особенно, если в категорию включено много страниц), но и позволяет избежать случайных ошибок, весьма вероятных при ручной обработке.

Переименование статей[править код]

Для переименования статей есть специальный модуль pywikipediabot’а.

python movepages.py -from:"старое название статьи" -to:"новое название статьи"

Этой командой создаётся новая статья (если её ещё нет) как точная копия старой, а в старой статье остаётся перенаправление на новую. При использовании параметра -del старая статья помечается к удалению или удаляется, если бот имеет флаг администратора.

Переименование страниц с помощью бота имеет смысл при большом объёме работ, например при перемещении в другое пространство имён.

python movepages.py -prefix:'новое название пр-ва имён' 

Существенно облегчает работу наличие файла для автоматического переименования. Файл должен быть в формате [[название статьи]] [[новое название]] [[название статьи]] [[новое название]] …

python movepages.py -pairs:'название файла'.dat
python movepages.py -cat:название_категории -from:'старое название статьи' -to:'новое название статьи'

Пример: Условно нужно исправить одинаковую ошибку во всех названиях из категории Категория:Округа Франции, условная ошибка - дополнение к названию (округ), меняем маленькую «о» на заглавную «О».

Для этого пишем: movepages.py -always -cat:Округа_Франции -from:'(округ)' -to:'(Округ)'
Бот дважды просит подтвердить задание на выполнение n / y / all (выбираем all), после чего бот приступает в автоматическом режиме переименовывать все статьи из категории.
Внимание, для переименования не пишите просто -from:'о' -to:'О' - в этом случае все «о» названия статьи будут изменены на заглавную «О» (БОрдО (Округ)).

Параметр -always: требуется для массового переименования.
Параметр -cat: позволяет переименовывать все статьи из заданной категории.
Параметр -noredirect: подавляет перенаправление.

Исправление ссылок на неоднозначности[править код]

Часто бывает, что статьи ссылаются на страницу разрешения неоднозначности. Это с помощью бота легко исправлять в полуавтоматическом режиме.

python solve_disambiguation.py 'название страницы разрешения неоднозначности'

Программа создаёт меню из всех ссылок на странице дизамбига и назначает каждой ссылке отдельный номер. Потом бот проходит по всем страницам, которые ссылаются на страницу разрешения неоднозначности, и показывает 30 знаков от текста этой страницы. Остаётся набирать нужный номер, и бот заменяет ссылку на неоднозначность ссылкой, которая соответствует этому номеру.

Когда задан параметр -main, то бот обрабатывает только статьи и игнорирует другие пространства имён (как обсуждения, Википедия: и т. д.).

См. Список страниц неоднозначностей, отсортированный по количеству включений — обширное поле деятельности для ботовода.

Исправление двойных перенаправлений[править код]

Бот с успехом справляется и с этой задачей

python redirect.py double

Исправление ссылок на многозначные термины[править код]

python disambredir.py G

Бот разгребает категорию Многозначные термины, начиная (в данном случае) с буквы G. Можно выбирать из опций ничего не делать, исправлять ссылку, изменять текст ссылки и превращение ссылки в текст.

исправление орфографических, смысловых ошибок и ошибок вики-синтаксиса[править код]

Возможно и такое! Для этого можно использовать боты replace.py или user-fixes.py. Но для начала проще воспользоваться функцией «Regex typo fixing» в AWB. Выражения для исправления ошибок в этом случае берутся со страницы Википедия:AutoWikiBrowser/Typos

  • replace.py может исправлять ошибки вики-синтаксиса (не рекомендуется запускать в автоматическом режиме)
python replace.py -fix:syntax -file:'файл со списком статей'
  • В примере бот пройдётся по категории Напитки и заменит «вино» на «пиво» и «красное» на «светлое»
python replace.py -cat:Напитки "вино" "пиво" "красное" "светлое"

Удаление спама[править код]

python spamremove.py spammedsite.com

Удаление ссылок на страницу[править код]

python unlink.py  'название страницы' -namespace:0 -namespace:6

Удаляет ссылки на страницу [[название страницы]] в статьях и описаниях изображений.

Найти пересечения по двум критериям[править код]

Иногда потребуется список статей, которые удовлетворяют выполнению двух критериев, например все города Германии, расположенные на реке Эльба. Для этой задачи можно использовать модуль List comparer программы AutoWikiBrowser. В списке 1 задаётся Category (recursive) «Города Германии», во втором списке Category «Города на Эльбе». Можно использовать фильтр для отсеивания других пространств имён кроме основного. Нажатием на Compare мы получаем список пересечений, который можно сохранить в списке.

Особенности кириллицы[править код]

При работе с pywikipedia ботом.

Для корректной работы с категориями и буквами на кириллице под Windows нужно прописать в файл user-config.py следующие строки:

# -*- coding: utf-8 -*-

console_encoding = 'cp1251'

Список кодов по странам — Википедия:Рекомендации юному ботоводу/Список кодов.

Обработка группы статей[править код]

  • -cat:"Название категории" (обработка всех статей в данной категории)
  • -catr:"Название категории, которая обрабатывается вместе с подкатегориями"
    • -subcat: (то же самое)
  • -file:"Название файла, который содержит список статей"
  • -transcludes:"Название шаблона" (обработка всех статей, которые содержат шаблон)
  • -new:"Число новых статей"
  • -start:"Буква, с которой начинается обработка"
  • -until:"Буква, на которой заканчивается обработка"
  • -usercontribs:"Название учётной записи" (обработка вклада участника)
  • -links:"название статьи" (обработка всех статей, ссылки на которых есть в статье)
  • -ref:"название статьи" (обработка всех статей, ссылающих туда)

С чего начать?[править код]

Рекомендуется тренироваться с помощью АвтоВикиБраузера. Удобный графический интерфейс позволяет перед каждой правкой посмотреть результат правки. Если обнаруживается ошибка, то можно её исправить перед сохранением. Далее рекомендовано ознакомиться с «регулярными выражениями» (regular expressions). Чем лучше вы разбираетесь в них, тем эффективнее бот может работать.

Если не нравится Python…[править код]

Если язык Python и его программная инфраструктура не вполне удовлетворяют вас, или вы хотели бы ознакомиться с более «промышленными» системами разработки, то для PyWikipediabot есть альтернативы. Большинство из них основано на платформе Microsoft .NET, например, AutoWikiBrowser и DotNetWikiBot. Либо же, вы можете написать свой скрипт с нуля с использованием одной из библиотек API, которые есть для большинства используемых языков программирования.

На какие грабли можно наступить?[править код]

  • По умолчанию страницы разрешения неоднозначности (с шаблоном {{disambig}}, {{неоднозначность}} или подобными) не должны быть связаны с обычными статьями. Pywikipediabot безжалостно удаляет такую связь, даже если шаблон в одном из разделов поставлен (или отсутствует) по ошибке.
  • Исправление орфографических ошибок без просмотра может привести к самым неожиданным результатам.

Пространства имён[править код]

Пространство имён.

  • namespace:0 — Статья
  • namespace:1 — Обсуждение статьи
  • namespace:2 — Участник
  • namespace:3 — Обсуждение участника
  • namespace:4 — Википедия (ВП:Проект/… и т. д.)
  • namespace:5 — Обсуждение Википедии
  • namespace:6 — Файл
  • namespace:10 — Шаблон
  • namespace:11 — Обсуждение шаблона
  • namespace:14 — Категория
  • namespace:100 — Портал
  • namespace:101 — Обсуждение портала
  • namespace:102 — Инкубатор
  • namespace:103 — Обсуждение инкубатора
  • namespace:104 — Проект
  • namespace:105 — Обсуждение проекта
  • namespace:106 — Арбитраж
  • namespace:107 — Обсуждение арбитража

Шаблон:Nobots[править код]

Бывают случаи, что обработка страницы ботом нежелательна (например, в некоторых часто употребляемых шаблонах категории и интервики перенесены на подстраницу «Документация»). Хотя об этом может быть написано на странице шаблона в комментариях (<!-- Интервики пожалуйста в документацию!!! -->), боты игнорируют эту просьбу, поскольку нет ботов, которые понимают текст.

В таких случаях можно поместить на страницу шаблон {{nobots}}. Также можно запретить правку страницы отдельными ботами. Подробнее см. на странице описания шаблона.

Полезные ссылки[править код]