Посібник:Pywikibot/Вікідані
Appearance
Pywikibot |
---|
|
На цій сторінці пояснюється, як створити бота на python для Вікіданих використовуючи базову бібліотеку pywikibot.
Якщо ви просто хочете запустити деякі скрипти без написання коду python, дивіться наявні Wikidata скрипти.
Caution: | По мірі розвитку Wikibase методи і результати у майбутньому можуть бути змінені. |
Pywikibot supports lexical data objects like Lexemes with release 7.2 and above.
Конфігурації
Щоби почати робити внесок/тестування з використанням облікового запису вашого бота необхідно додати наступні рядки до user-config.py :
- Робочий сайт
usernames['wikidata']['wikidata'] = 'YourBot'
- Тестовий сайт
usernames['wikidata']['test'] = 'YourBot'
Приклади
Див. створення бота Вікіданих для докладнішої довідки. Ядро pywikibot підтримує більшість функції Wikibase, наприклад, кваліфікатори, джерела, властивості з елементом, координатами, часом і тип рядка.
import pwb # потрібно якщо ви не встановили фреймворк як сторонній пакунок
import pywikibot
site = pywikibot.Site('wikipedia:en') # будь-який сайт буде працювати, це лише приклад
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')
Див. також
- Скрипти Вікіданих
- Wikidata:Creating a bot
- Wikidata:Pywikibot - Python 3 Tutorial
- How to interact with Wikidata via Pywikibot - a workshop by User:Mike Peel
Деякі приклади ботів
- Якщо вам потрібна додаткова допомога щодо налаштування вашого Pywikibot, відвідайте #pywikibot IRC-канал connect або pywikibot@ список розсилки.