Manual:Pywikibot/Wikidata/nl

From Linux Web Expert

Revision as of 07:46, 29 August 2023 by imported>HanV (Created page with "een werkshop door User:Mike Peel")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


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.

File:OOjs UI icon alert-destructive.svg <translate> Caution:</translate> 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


<translate> If you need more help on setting up your Pywikibot visit the {{<tvar name="1">irc|pywikibot</tvar>|#pywikibot IRC channel}} or [[<tvar name="2">mail:pywikibot</tvar>|pywikibot@ mailing list]].</translate>