Посібник:Pywikibot/Wikidata

This page is a translated version of the page Manual:Pywikibot/Wikidata and the translation is 96% complete.
Other languages:
Bân-lâm-gú • ‎English • ‎Nederlands • ‎Tagalog • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎Ελληνικά • ‎български • ‎русский • ‎українська • ‎العربية • ‎中文 • ‎日本語 • ‎한국어

На цій сторінці пояснюється, як створити бота на python для Wikidata використовуючи базову бібліотеку pywikibot.

Якщо ви просто хочете запустити деякі скрипти без написання коду python, дивіться наявні Wikidata скрипти.

Caution! Caution: По мірі розвитку Wikibase методи і результати у майбутньому можуть бути змінені.
pywikibot currently does not support lexical data objects like Lexemes. Use WikibaseIntegrator or LexData to edit those instead.

Конфігурації

Щоби почати робити внесок/тестування з використанням облікового запису вашого бота необхідно додати наступні рядки до user-config.py:

Робочий сайт
usernames['wikidata']['wikidata'] = 'YourBot'
Тестовий сайт
usernames['wikidata']['test'] = 'YourBot'

Приклади

Див. створення бота Вікіданих для докладнішої довідки. Ядро pywikibot підтримує більшість функції Wikibase, наприклад, кваліфікатори, джерела, властивості з елементом, координатами, часом і тип рядка.

import pwb  # потрібно якщо ви не встановили фреймворк як сторонній пакунок
import pywikibot
site = pywikibot.Site('en', 'wikipedia')  # будь-який сайт буде працювати, це лише приклад
page = pywikibot.Page(site, 'Douglas Adams')
item = pywikibot.ItemPage.fromPage(page)  # це можна використовувати для об'єкта будь-якої сторінки
# ви також можете визначити елемент так
repo = site.data_repository()  # це об'єкт DataSite
item = pywikibot.ItemPage(repo, 'Q42')  # Це буде функціонувати так само, як і інший елемент, який ми визначили
item.get()  # вам треба викликати його для доступу до будь-яких даних.
sitelinks = item.sitelinks
aliases = item.aliases
if 'en' in item.labels:
    print('The label in English is: ' + item.labels['en'])
if item.claims:
    if 'P31' in item.claims: # instance of
        print(item.claims['P31'][0].getTarget())
        print(item.claims['P31'][0].sources[0])  # просто припустимо, що в ньому є джерела.

# Редагувати існуючий елемент
item.editLabels(labels={'en': 'Douglas Adams'}, summary='Edit label')
item.editDescriptions(descriptions={'en': 'English writer'}, summary='Edit description')
item.editAliases(aliases={'en':['Douglas Noel Adams', 'another alias']})
item.setSitelink(sitelink={'site': 'enwiki', 'title': 'Douglas Adams'}, summary='Set sitelink')
item.removeSitelink(site='enwiki', summary='Remove sitelink')

# Ви також можете зробити все це за один раз:
data = {'labels': {'en': 'Douglas Adams'},
  'descriptions': {'en': 'English writer'},
       'aliases': {'en': ['Douglas Noel Adams', 'another alias'], 'de': ['Douglas Noel Adams']},
     'sitelinks': [{'site': 'enwiki', 'title': 'Douglas Adams'}]}
item.editEntity(data, summary='Edit item')

Див. також

Деякі приклади ботів


If you need more help on setting up your Pywikibot visit the #pywikibot IRC channel connect or pywikibot@ mailing list.