Usuario:Ignacio Icke/ABajuste.py

De Wikipedia, la enciclopedia libre
# -*- coding: utf-8  -*- 
import wikipedia
import re
import codecs
import sys
import pagegenerators



pagina=u"Wikipedia:Artículos buenos/Índice"
re_start=re.compile(ur"Arquitectura==")
re_end=re.compile(ur"FIN LISTA BUENOS")
re_enlace=re.compile(ur"(?:\[\[)(?P<enlace>[^\]]*)")
re_imagen=re.compile(ur"[Ii]mage")
re_almo=re.compile(ur"#")
re_wiki=re.compile(ur"Wikipedia:")
re_sep=re.compile(ur"\|")
es_site=(wikipedia.Site("es","wikipedia"))
#Here we go!
ap=wikipedia.Page(es_site,pagina )
texto=ap.get() 
texto=texto[re_start.search(texto).end():re_end.search(texto).start()]
enlaces=re_enlace.finditer(texto) 
ab1=[]
ab2=[]
num=0
for enlace in enlaces:
        #print enlace.group("enlace")
        if not re_imagen.match(enlace.group("enlace")) and not re_almo.match(enlace.group("enlace")) and not re_wiki.match(enlace.group("enlace")):
                ab1.append(enlace.group("enlace"))    
        num=num+1
gen = pagegenerators.ReferringPageGenerator(wikipedia.Page(wikipedia.getSite(),u"Plantilla:Artículo bueno"),followRedirects=True,onlyTemplateInclusion=True)
for page in gen:
   ab2.append(page.title())
print "en indice:"+ repr(len(ab1)) +"\n"
print "Con plantilla:"+ repr(len(ab2)) +"\n"

file=codecs.open("ajustebuenos.txt", mode='wb', errors='strict', encoding='utf-8', buffering=1)

file.write( u"==En índice sin plantilla==\n")
for ab in ab1:
        if ab not in ab2:
                file.write( "*[["+ab+"]]\n" )
file.write( u"==Con plantilla pero no en índice==\n")
for ab in ab2:
        if ab not in ab1:
		file.write( "*[["+ab+"]]\n")

file.close()