Usuari:Rebot/Catgra
# -*- 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 grosses") informe=[u"",u""] informeno=[u"",u""] min="1000" pagweb0="http://ca.wikipedia.org/w/api.php?action=query&list=allcategories&format=json&acmin=1&acmin=" + min + "&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|Arxius|Pàgines|Control|Botànics|Infotaula|Mapes|Ús|Redireccions|Fitxers|Usuaris|Anècdotes|Viquipedistes|Infotaules|Plantilles|Demandes|Esborranys|Imatges|Logotips|Manteniment|Moure a|Esportistes amb dades|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) # Resta del codi 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") # Resta del codi textinforme="\n==Categories grosses==\n\n" textinforme=textinforme+'Categories amb més de "' + min + '" articles\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 grosses") pywikibot.stopme()
Adaptat de Usuari:Rebot/Catpet. Pau Cabot · Discussió 06:30, 9 abr 2023 (CEST)