Manuel:Pywikibot/Wikidata

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Pywikibot/Wikidata and the translation is 88% complete.

Other languages:
English • ‎Nederlands • ‎Tagalog • ‎dansk • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎čeština • ‎Ελληνικά • ‎български • ‎русский • ‎українська • ‎العربية • ‎中文 • ‎日本語 • ‎한국어

Cette page montre comment créer un bot python pour Wikidata en utilisant la biliothèque de base de pywikibot.

Si vous voulez seulement lancer des scripts sans écrire de python, voir les scripts Wikidata inclus dans pywikibot.

Attention! Attention : Les méthodes et les résultats des appels pourraient changer dans le futur pour suivre l'évolution de Wikibase.

Configuration

Pour commencer à contribuer ou à tester l'utilisation de votre compte utilisateur robot, vous devez ajouter ce qui suit à votre user-config.py:

Site de production
usernames['wikidata']['wikidata'] = u'YourBot'
Site de test
usernames['wikidata']['test'] = u'YourBot'

Exemple

Voir Créer un bot pour une documentation étendue. Le noyau pywikibot prend en charge la plupart des fonctionnalités de Wikibase, par exemple les qualificatifs, les sources, les propriétés avec les éléments, les types coordonnées, dates et chaîne.

import pwb  # nécessaire seulement si vous n'avez pas installé le framework en tant que package additionnel
import pywikibot
site = pywikibot.Site('en', 'wikipedia')  # n'importe quel site fonctionnera, ceci est juste un exemple
page = pywikibot.Page(site, 'Douglas Adams')
item = pywikibot.ItemPage.fromPage(page)  # ceci peut être utilisé pour n'importe quel objet de page
# vous pouvez aussi définir un élément comme cela
repo = site.data_repository()  # ceci est un objet DataSite
item = pywikibot.ItemPage(repo, 'Q42')  # Cela sera la même chose fonctionnellement que l'autre élément que nous avons défini
item.get()  # vous avez besoin d'y faire appel pour accéder à n'importe quelle donnée.
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])  # supposons juste que les sources existent.

# Modifier un élément existant
item.editLabels(labels={'en': 'Douglas Adams'}, summary=u'Edit label')
item.editDescriptions(descriptions={'en': 'English writer'}, summary=u'Edit description')
item.editAliases(aliases={'en':['Douglas Noel Adams', 'another alias']})
item.setSitelink(sitelink={'site': 'enwiki', 'title': 'Douglas Adams'}, summary=u'Set sitelink')
item.removeSitelink(site='enwiki', summary=u'Remove sitelink')

# Vous pouvez faire aussi tout cela en une fois :
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=u'Edit item')


Voir aussi

Some bot examples


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