Handboek:Pywikibot/Wikidata

From mediawiki.org
This page is a translated version of the page Manual:Pywikibot/Wikidata and the translation is 100% complete.

Deze pagina laat zien hoe je een python-bot op Wikidata maakt, met de standaard pywikibot bibliotheek.

Als je gewoon wat scripts wilt draaien zonder een regel code te schrijven, bekijk dan de meegeleverde Wikidata scripts.

Let op! Let op: De methoden en de resultaten kunnen in de toekomst wijzigen, omdat Wikibase zich continue ontwikkelt.
Pywikibot ondersteund lexical gegevensobjecten als Lexemes vanaf release 7.2.

Configuratie

Om met het bijdragen/testen met je bot-account te beginnen, moet je het volgende toevoegen in je user-config.py :

Productie website
usernames['wikidata']['wikidata'] = 'YourBot'
Test website
usernames['wikidata']['test'] = 'YourBot'

Voorbeeld

zie Een bot maken voor uitgebreide documentatie. pywikibot core ondersteunt al de meeste Wikibase functies, zoals qualifiers, bronnen, eigenschappen met item, coördinatie, tijd en tekst-type.

import pwb  # alleen nodig als het framework niet als side-package is geïnstalleerd
import pywikibot
site = pywikibot.Site('wikipedia:en')  # elke website zal werken, dit is maar een voorbeeld
page = pywikibot.Page(site, 'Douglas Adams')
item = pywikibot.ItemPage.fromPage(page)  # dit kan gebruikt worden voor een object van het type page
# je kunt ook zo een item definiëren
repo = site.data_repository()  # dit is een object van het type DataSite
item = pywikibot.ItemPage(repo, 'Q42')  # Dit is functioneel gezien gelijk aan het andere gedefinieerde item

item.get()  # je moet dit aanroepen om gegevens te benaderen
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])  # er zijn vast wel bronnen.

# Bestaand item wijzigen
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')

# Dit kan ook in één keer:
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')


Zie ook

Voorbeelden met bot


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