Manual:Pywikibot/Compat/Wikidata/es
Esta página es documentación para Pywikipedia Compat, que ya no tiene soporte. Está página se mantiene por interés histórico. Puede documentar scripts y características que están obsoletas y/o no reciben más soporte. No confíe en que esta información esté actualizada. |
Crear un objeto DataPage
Different ways to create a DataPage and Page object for Wikidata: First way is creating a data_repo first, use this way only when you have ID of the item (Q####)
import pywikibot
# create a site object, here for en-wiki
site = pywikibot.getSite('en')
# get the data repository site for the given site
repo = site.data_repository()
# OR you may also get the site by language code/family:
# repo = pywikibot.getSite('wikidata', 'wikidata')
# We also can create a DataPage by its ID in two ways
# First by site and title:
data = pywikibot.DataPage(repo, "Q42")
#OR the second way by the ID number:
data = pywikibot.DataPage(42)
La segunda forma es:
import pywikibot
# create a site object, here for en-wiki
site = pywikibot.getSite('en')
# create a Page object for en-wiki
page = pywikibot.Page(site, "Helium")
# Now we create the corresponding DataPage:
data = pywikibot.DataPage(page)
# Warning: This page does not have a valid title until you get its content
No puedes cambiar ningún elemento, valor o etiqueta sin antes obtener los datos.
Obtener datos
Obtén los datos de una manera sencilla
# get an entity of that page
dictionary = data.get()
# get interwiki links as page objects
language_links = data.interwiki()
Cambiar etiquetas
data.setitem(summary=u"BOT SUMMARY",
items={'type': u'item', 'label': 'fa', 'value': 'هلیم'})
Cambiar descripciones
page.setitem(summary=u"BOT SUMMARY",
items={'type': u'description', 'language': 'en', 'value': 'noble gas'})
Changing sitelinks
data.setitem(summary=u"BOT SUMMARY",
items={'type': u'sitelink', 'site': 'de', 'title': 'OK'})
Cambiar o crear afirmaciones/sentencias
data.editclaim(property, value ,refs={("ref1","value1"),("ref2","value2")})
- property can be a string like "capital" or "p36" or "P36" or "36" or 36
- value can be a string like "Moscow" or "Q649" or "q649" or "649" or 649
- refs is optional and if you don't add any references the bot will change either:
- ref1 can be a string like "imported from" or "p143" or etc
- value1 can be a string like "English Wikipedia" or "q328" or etc
- other refs are optional too
- Remember
- Important:language of values must the same as the Wikipedia page you load at first. For example, if you load Russia from Deutsch Wikipedia your values must be:
data.editclaim("Hauptstadt", "Moskau" ,refs={("Datenvorlage","Englischsprachige Wikipedia ")})
y si ejecutas tu bot con valores en inglés, el bot no funcionará
If there was a claim already the code changes the claim, and if not the code adds the claim.
Getting all entities (of an item)
dictionary = data.get()
Removing claim or claims
data.removeclaim(property, value)
you can add the property in the way shown above, value is optional and it's better to use when we have multiple claims for a statement if you don't use value, every claim that uses the property will be removed
Crear un elemento
data.createitem('summary')
Ejemplo
Ejemplo simple para crear elementos nuevos.
# -*- coding: utf-8 -*-
import wikipedia
site = wikipedia.getSite('fa') # add parameter fam='wikipedia' if you haven't declared family = 'wikipedia' in your user-config.py
list_of_articles=[u"دهستان جونقان", u"قنات_بزل_وار", u"قنات_بسک", u"قنات_بشرآباد"]
for name in list_of_articles:
# create a Page object of a site
page = wikipedia.Page(site, name)
# create the corresponding data repository object
data = wikipedia.DataPage(page)
if data.exists():
wikipedia.output(u"%s already exists. Skipping..." % name)
else:
wikipedia.output(u"%s is missing. Creating..." % name)
data.createitem(u"Bot: Importing article from Persian wikipedia")