Usuari:PereBot/robot enllaços a desambiguacions
Aparença
# -*- coding: utf-8 -*-
# Robot que llista articles enllaçats a pàgines de desambiguació.
# Exclou les redireccions i els que tenen una plantilla de polisèmia.
# Les pàgines que tenen "desambiguació" al títol no les mira
# per massa òbvies.
import sys
sys.path.append('C:\pywikipedia')
import wikipedia,catlib,re,pagegenerators,urllib2
def main():
tcat=u"Pàgines de desambiguació" #Poseu aquí la categoria a indexar
cat=catlib.Category(site,tcat)
informe=u"=="+tcat+u"==\n\n"
informe0=informe
paginforme=wikipedia.Page(site,u"Usuari:PereBot/enllaços a pàgines de desambiguació") # Canvieu això pel lloc on vulgueu la informació
textvell=paginforme.get()
comptador=0
comptabloc=480
for pag in pagegenerators.CategorizedPageGenerator(cat,recurse=True):
print comptador, pag
enllacades=u""
if u"(desambiguació)" in pag.title():
print u"Títol inconfusible"
continue
for art in pagegenerators.PreloadingGenerator(pagegenerators.ReferringPageGenerator(pag,followRedirects=True)):
print comptador, comptabloc, art
plants=art.templates()
if art.namespace()<>0:
print u"No espai principal"
continue
elif art.isRedirectPage():
continue
elif u'Confusió' in plants or u'Confondre' in plants or u'Distingir' in plants:
print u'Confusió'
continue
elif u'Polisèmia' in plants or u'Nota disambigua' in plants or u'Other uses' in plants or u'Altres usos' in plants:
print u'Polisèmia'
continue
elif u'Redirecció' in plants or u'Redirect' in plants:
print u'Redirecció'
continue
elif u'Vegeu' in plants or u'Polisèmia descripció' in plants or u'Homonímia' in plants:
print u'Vegeu'
continue
elif u'Vegeu (des)' in plants or u'Vegeu (desambiguació)' in plants:
print u'Vegeu (des)'
continue
elif u'Vegeu lliure' in plants or u'Hatnote' in plants:
print u'Vegeu (des)'
continue
elif u'Vegeu3' in plants or u'Otheruses4' in plants:
print u'Vegeu3'
continue
comptador=comptador+1
comptabloc=comptabloc+1
enllacades=enllacades+u"## [["+art.title()+u"]]\n"
print u"enllaçada"
if enllacades<>u"":
informe=informe+u"# [["+pag.title()+u"]]\n"+enllacades
if comptabloc>500:
textnou=textvell+u"\n\n"+informe+u"\n\n"
paginforme.put(textnou,u"Enllaços a pàgines de desambiguació")
comptabloc=0
# if comptador>50:
# break
textnou=textvell+u"\n\n"+informe+u"\n\n--~~~~\n"
paginforme.put(textnou,u"Enllaços a pàgines de desambiguació")
return
#El programa comença aquí
try:
site=wikipedia.getSite('ca')
main()
finally:
wikipedia.stopme()