Manuale:Pywikibot/Wikidata
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: | 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
- Wikidata scripts
- Wikidata:Creating a bot
- Wikidata:Pywikibot - Python 3 Tutorial
- How to interact with Wikidata via Pywikibot - a workshop by User:Mike Peel
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@.