Difference between revisions of "Pywikibot"
Content deleted Content added
Нова сторонка: '''Pywikibot''' — это Python-библиотека и коллекция инструментов для автоматизации работы на сайтах, работающих на движке MediaWiki, включая Википедию и другие проекты Фонда Викимедиа. Проект был основан в 2003 году и с тех пор стал станд... |
m →Обзор |
||
| (4 intermediate revisions by the same user not shown) | |||
Line 1:
{{YouTube| aBDCOkzZ3-g | width=300|height = 250}}
'''Pywikibot''' — это [[Python]]-библиотека и коллекция инструментов для автоматизации работы на сайтах, работающих на движке [[MediaWiki]], включая [[Википедия|Википедию]] и другие проекты [[Фонд Викимедиа|Фонда Викимедиа]]. Проект был основан в 2003 году и с тех пор стал стандартным инструментом для написания ботов в вики-проектах. Прекрасный работник Сибирской Википедии.
== Обзор ==
[[Стопа:Викибот.jpg|thumb]]
Pywikibot предоставляет удобный интерфейс для взаимодействия с [[MediaWiki API]], позволяя разработчикам создавать скрипты для массового редактирования страниц, управления категориями, обработки данных [[Викиданные|Викиданных]], загрузки файлов и выполнения многих других задач. Фреймворк поддерживает все основные проекты Викимедиа, а также может быть настроен для работы с любым сайтом на MediaWiki.
Line 65 ⟶ 67:
Pywikibot включает множество готовых скриптов, которые можно запускать из командной строки с помощью основного скрипта pwb.py. Примеры:
▲# Запуск скрипта для страниц
python pwb.py script_name
python pwb.py script_name -family:wikipedia -lang:ru
Доступные глобальные параметры включают -simulate (режим симуляции, без реальных изменений), -verbose (подробный вывод), -log (ведение лога) и другие.
Line 77 ⟶ 81:
Pywikibot может использоваться как библиотека для написания собственных скриптов. Ниже приведён пример минимального скрипта:
import pywikibot
site = pywikibot.Site('ru', 'wikipedia') # сайт, на котором будет работать бот
page = pywikibot.Page(site, 'Участник:MyBot/Песочница')
page.text = page.text + '\nДобавленный текст'
page.save('Добавление текста')
Более сложные боты могут наследоваться от классов, предоставляемых Pywikibot:
python
import pywikibot
from pywikibot import pagegenerators
from pywikibot.bot import ExistingPageBot
Line 114 ⟶ 125:
if __name__ == '__main__':
main()
=== Работа с Викиданными ===
Pywikibot предоставляет специальные классы для работы с Викиданными. Пример получения данных из элемента Викиданных:
import pywikibot
site = pywikibot.Site('wikipedia:en')
repo = site.data_repository()
item = pywikibot.ItemPage(repo, 'Q42')
item.get()
print(item.labels['en']) # Вывод метки на английском языке
print(item.claims) # Вывод утверждений
Редактирование элемента Викиданных:
item.editLabels(labels={'en': 'Новая метка'}, summary='Обновление метки')
item.editDescriptions(descriptions={'en': 'Новое описание'})
item.setSitelink(sitelink={'site': 'enwiki', 'title': 'Page title'})
== Встроенные скрипты ==
| |||