Difference between revisions of "Pywikibot"
Content deleted Content added
m →Обзор |
|||
| (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 может использоваться как библиотека для написания собственных скриптов. Ниже приведён пример минимального скрипта:
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 предоставляет специальные классы для работы с Викиданными. Пример получения данных из элемента Викиданных:
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'})
== Встроенные скрипты ==
| |||