Manual:Pywikibot/Creeu el vostre propi guió

From mediawiki.org
This page is a translated version of the page Manual:Pywikibot/Create your own script and the translation is 87% complete.

Aquesta pàgina recull una llista de consells bàsics per a aprendre a escriure el vostre propi bot. Assegureu-vos que heu configurat el fitxer user-config.py !

També podeu usar les ordres següents en un intèrpret d'ordres o en un guió.

Per a obrir un intèrpret d'ordres, executeu python pwb.py shell;

Com a guió, deseu el fitxer amb el nom myscript.py en el directori scripts/userscripts/; després executeu python pwb.py myscript.

  • Per accedir a la biblioteca pywikibot des del vostre script Python, utilitzeu:
import pywikibot
  • Per recuperar una pàgina, useu el següent, on pageName és el títol de la pàgina que voleu recuperar, p. ex., Viquipèdia:Bots o Xina:
site = pywikibot.Site()
page = pywikibot.Page(site, "pageName")
text = page.text
  • Per actualitzar una pàgina, useu:
page.text = "newText"
page.save("Edit comment")
  • mireu alguns fitxers de pywikibot per a agafar idees: scripts/basic.py és relativament fàcil de llegir fins i tot si sou nouvinguts.
  • trobareu tots els mètodes de pàgina en el fitxer pywikibot/page.py.
  • basic.py proporciona una configuració que podeu fer servir per a molts diferents bots, només cal definir la cadena el text de la pàgina.

Per a iterar en un conjunt de pàgines, vegeu pywikibot/pagegenerators.py (vegeu també documentació antiga) per a trobar objectes que tornen un conjunt de pàgines. Hi ha un exemple de CategoryPageGenerator que fa quelcom a cada pàgina en la categoria Category:Living people:

import pywikibot
from pywikibot import pagegenerators
site = pywikibot.Site()
cat = pywikibot.Category(site,'Category:Living people')
gen = pagegenerators.CategorizedPageGenerator(cat)
for page in gen:
    #Do something with the page object, for example:
    text = page.text

Vegeu també


If you need more help on setting up your Pywikibot visit the #pywikibot IRC channel connect or pywikibot@ mailing list.