Usuari:Rebot/Catpet
# -*- coding: utf-8 -*- import re,urllib,urllib.request,json import pywikibot site = pywikibot.Site() site.login() # El programa comença aquí site=pywikibot.Site('ca') paginforme=pywikibot.Page(site,u"Usuari:Rebot/categories petites") informe=[u"",u""] informeno=[u"",u""] pagweb0="http://ca.wikipedia.org/w/api.php?action=query&list=allcategories&format=json&acmin=1&acmax=4&aclimit=500&acprop=size&rawcontinue=" pagweb=pagweb0 textcont="" while textcont!="acabat": print (pagweb) pllista=urllib.request.urlopen(pagweb) print ("obert") pbrut=pllista.read() jpag=json.loads(pbrut.decode('utf-8')) #print jpag lcats=jpag["query"]["allcategories"] #print lcats for dcat in lcats: nom=dcat["*"] mida=dcat["size"] pags=dcat["pages"] subcs=dcat["subcats"] if subcs==0 or (subcs==1 and pags==0): linia="# [[:categoria:{}]]: {} subcategories i {} pàgines\n".format(nom,subcs,pags) titcat="Categoria:"+nom if re.search("Categoria:(Articles|Errors|Morts|Naixements|Viquiprojectes|Mòduls|Pàgines|Usuaris|Anècdotes|Viquipedistes|Infotaules|Plantilles|Demandes|Esborranys|Imatges|Logotips|Manteniment|Moure a|Peticions|Preguntes|Preses de decisió|VP Grècia|Categories|Esborrar|Drets d'autor a revisar|Manteniment|.*(que necessiten|sense registre fòssil))",titcat): informeno[subcs]=informeno[subcs]+linia else: informe[subcs]=informe[subcs]+linia print (linia) contbrut=re.findall('"accontinue":".*?"',pbrut.decode('utf-8')) if len(contbrut)>0: #print contbrut contbrut=contbrut[0] contbrut=contbrut.replace('"accontinue":"','') contbrut=contbrut[:-1] print ("continuació:",contbrut) textcont="&accontinue="+contbrut pagweb=pagweb0+textcont else: textcont="acabat" print ("S'ha acabat") textinforme="\n==Categories petites==\n\n" textinforme=textinforme+"===Categories enciclopèdiques===\n\n" textinforme=textinforme+"====Sense subcategoria====\n\n"+informe[0] #textinforme=textinforme+"====Amb subcategoria====\n\n"+informe[1] #textinforme=textinforme+"===Categories no enciclopèdiques===\n\n" #textinforme=textinforme+"====Sense subcategoria====\n\n"+informeno[0] #textinforme=textinforme+"====Amb subcategoria====\n\n"+informeno[1] textinforme=textinforme+"\n--~~~~\n\n\n" paginforme.put(textinforme,"Robot buscant categories petites") pywikibot.stopme()
Adaptat de Usuari:PereBot/robot categories petites. Traduït de python2 a python3. Pau Cabot · Discussió 11:00, 8 abr 2023 (CEST)