Manual:Pywikibot/Wikidata
Esta página explica como criar bots python no Wikidata usando a biblioteca básica pywikibot.
Se você quer apenas executar alguns scripts sem escrever uma linha de python, veja os scripts do Wikidata incluídos.
Atenção: | Os métodos e resultados podem ser alterados no futuro, à medida que o Wikibase evolui. |
Pywikibot supports lexical data objects like Lexemes with release 7.2 and above.
Configuração
Para começar a contribuir/testar usando a conta do seu bot você deve adicionar o seguinte ao seu user-config.py :
- Local de produção
usernames['wikidata']['wikidata'] = 'YourBot'
- Local de testes
usernames['wikidata']['test'] = 'YourBot'
Exemplo
veja d:Wikidata:Creating a bot para uma documentação extensa. O pywikibot core suporta a maioria dos recursos do Wikibase já, por exemplo, qualificadores, fontes, propriedades com item, coordenada, hora e tipo de string.
import pwb # necessário apenas se você não tiver instalado o framework como side-package
import pywikibot
site = pywikibot.Site('wikipedia:en') # qualquer site vai funcionar, isso é apenas um exemplo
page = pywikibot.Page(site, 'Douglas Adams')
item = pywikibot.ItemPage.fromPage(page) # isso pode ser usado para qualquer objeto de página
# você também pode definir um item como este
repo = site.data_repository() # este é um objeto DataSite
item = pywikibot.ItemPage(repo, 'Q42') # Isso será funcionalmente o mesmo que o outro item que definimos
item.get() # você precisa chamá-lo para acessar todos os dados.
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]) # vamos supor que tenha fontes.
# Editar um item existente
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')
# Você também pode fazer isso tudo de uma só vez:
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')
Ver também
- Scripts do Wikidata
- 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 você precisar de mais ajuda na configuração do seu Pywikibot, visite o canal #pywikibot IRC connect ou pywikibot@ lista de discussão.