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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Боты
Правила применения · FAQ по ботам · AWB · Исходные коды · Рекомендации юному ботоводу

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

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

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

переименование категорий[править | править исходный текст]

Для переименования категорий есть специальный модуль 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 interwiki.py 'название страницы'
python interwiki.py -file:'название списка'
python interwiki.py -start:! -force (проходит по всем статьям и удаляет неправильные ссылки)
python interwiki.py -start:Category:A -until:B (проходит по категориям от A до B)
python interwiki.py -new:100 (проверяет 100 новейших статей, устанавливаемое число может быть любым)
дополнительный параметр -lang: (interwiki.py -lang:fr -new:100) позволяет проверять новейшие статьи в другом разделе ВП
python interwiki.py -cat:'название категории' (проверяет статьи из категории, пример: interwiki.py -cat:Учебные_самолёты)
категории, состоящие из более одного слова, должны быть соединены (тире снизу _ ) или включены в апострофы (') 
python interwiki.py -catr:'название категории' (проверяет категорию и (в отличие от -cat:) все подкатегории заданной категории)
python interwiki.py -usercontribs:Editor -namespace:14 -number:150  
(интервикифицирует вклад участника "Editor" в пространстве имён "Категория", выборка из последних 150 правок)
python interwiki.py -links:Москва  
(интервикифицирует все статьи, которые ссылаются на статью "Москва")
python interwiki.py -transcludes:'название шаблона'  
(интервикифицирует все статьи, которые содержат шаблон "название шаблона")
  • Для работы в автоматическом режиме следует добавить параметр -autonomous. Пример: interwiki.py -autonomous -start:Ф (проверяет все статьи, начинающиеся на букву Ф)
  • В проблемных случаях, когда бот не знает, стоит добавлять интервики или нет, такие случаи записываются в файл autonomous_problems.dat, данный файл при необходимости создаётся автоматически в папке pywikipedia на вашем жёстком диске.
  • Примечание: из-за некоторых особенностей работы шаблонов не рекомендуется использовать интервики-бот в пространстве имён «шаблон» в автономном режиме, все правки в этом пространстве следует тщательно проверять, чтобы избежать ошибок с расстановкой тегов <noinclude>.

разрешение интервикиконфликтов[править | править исходный текст]

Здесь дан пример.

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

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

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). Чем лучше вы разбираетесь в них, тем эффективнее бот может работать.

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

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

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

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

  • 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}}. Также можно запретить правку страницы отдельными ботами. Подробнее см. на странице описания шаблона.

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