Jump to content

Manuale:Pywikibot/Wikidata

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

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.
Pywikibot supports lexical data objects like Lexemes with release 7.2 and above.

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'] = 'YourBot'

Sito di test

usernames['wikidata']['test'] = '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('wikipedia:en')  # 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='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')

# 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='Edit item')


Vedi anche

Some bot examples


Se hai bisogno di ulteriore aiuto per configurare il tuo Pywikibot visita il canale IRC #pywikibot connect o la mailing list pywikibot@.