Difference between revisions of "Pywikibot"

Content deleted Content added
 
(3 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 79 ⟶ 81:
Pywikibot может использоваться как библиотека для написания собственных скриптов. Ниже приведён пример минимального скрипта:
 
 
python
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 116 ⟶ 125:
if __name__ == '__main__':
main()
 
=== Работа с Викиданными ===
 
Pywikibot предоставляет специальные классы для работы с Викиданными. Пример получения данных из элемента Викиданных:
 
python
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) # Вывод утверждений
 
Редактирование элемента Викиданных:
 
python
item.editLabels(labels={'en': 'Новая метка'}, summary='Обновление метки')
 
item.editDescriptions(descriptions={'en': 'Новое описание'})
 
item.setSitelink(sitelink={'site': 'enwiki', 'title': 'Page title'})
 
== Встроенные скрипты ==