Manuale: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 84% complete.

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

Questa pagina spiega come creare bot python su Wikidata usando la libreria pywikibot di base.

Se si desidera eseguire alcuni script senza scrivere una riga di python, consultare gli script di Wikidata inclusi.

Caution! Caution: I metodi e i risultati potrebbero vernir modificati in futuro, con l'evoluzione di Wikibase.

Configurazione

Per iniziare a contribuire/testare usando l'account del tuo bot devi aggiungere quanto segue al tuo user-config.py:

Sito di produzione

usernames['wikidata']['wikidata'] = u'YourBot'

Sito di test

usernames['wikidata']['test'] = u'YourBot'

Esempio

vedi creazione di un bot per una documentazione estesa. Il core pywikibot supporta già la maggior parte delle funzionalità di Wikibase, ad esempio qualificatori, origini, proprietà con elemento, coordinate, ora e tipo di stringa.

import pwb  # necessario solo se non è stato installato il framework come side-package
import pywikibot
site = pywikibot.Site('en', 'wikipedia')  # qualsiasi sito funzionerà, questa è solo un esempio
page = pywikibot.Page(site, 'Douglas Adams')
item = pywikibot.ItemPage.fromPage(page)  # questo può essere usato per qualsiasi oggetto di pagina
# puoi anche definire un articolo come questo
repo = site.data_repository()  # questo è un oggetto DataSite
item = pywikibot.ItemPage(repo, 'Q42')  # Questo sarà funzionalmente lo stesso dell'altro elemento che abbiamo definito
item.get()  # è necessario chiamarlo per accedere a qualsiasi dato.
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])  # supponiamo che abbia delle fonti.

# Modifica di un elemento esistente
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')

# Puoi anche farlo tutto in una volta:
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')


Vedi anche

Some bot examples


Se hai bisogno di più aiuto per impostare Pywikibot, visita il canale IRC irc