Manual:Pywikibot/Wikidata
Ipinapaliwanag sa pahinang ito kungg paano lumikha ng mga python bot sa Wikidata gamit ang panimulang pywikibot library.
Kung nais mo lang paganahin ang ilang mga script nang hindi sinusulat ang linya ng python tingnan ang mga kasamang Wikidata scripts.
Caution: | Maaaring maiba ang mga pamamaraan at resulta sa hinaharap, habang sumasailalim sa pagbabago (ebolusyon) ang Wikibase. |
Pywikibot supports lexical data objects like Lexemes with release 7.2 and above.
Pagkakaayos (kompigurasyon)
Upang makapag-simulang mag/ambag/mag-test gamit ang akawnt ng iyong bot dapat mong idagdag ang mga sumusunod sa iyong user-config.py :
- Sityong pamproduksyon
usernames['wikidata']['wikidata'] = 'YourBot'
- Sityong pang-test
usernames['wikidata']['test'] = 'YourBot'
Halimbawa
tingnan ang d:Wikidata:Creating a bot para sa maki-higit pang dokumentasyon. sinusuportahan ng pywikibot core ang karamihan sa Wikibase na nakatampok na, hal., qualifiers, mga pinagkunan, properties with item, coordinate, oras, at string type.
import pwb # only needed if you haven't installed the framework as side-package
import pywikibot
site = pywikibot.Site('wikipedia:en') # any site will work, this is just an example
page = pywikibot.Page(site, 'Douglas Adams')
item = pywikibot.ItemPage.fromPage(page) # this can be used for any page object
# you can also define an item like this
repo = site.data_repository() # this is a DataSite object
item = pywikibot.ItemPage(repo, 'Q42') # This will be functionally the same as the other item we defined
item.get() # you need to call it to access any data.
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]) # let's just assume it has sources.
# Edit an existing item
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')
# You can also make this all in one time:
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')
Tingnan din
- 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
- If you need more help on setting up your Pywikibot visit the #pywikibot IRC channel connect or pywikibot@ mailing list.