from urllib import request import json isikud={} kategooriad={} uuedKategooriad=[] def uuriKategooria(kategooria): obj=json.loads(request.urlopen("https://et.wikipedia.org/w/api.php?action=query&format=json&list=categorymembers&cmtitle=Category:"+urllib.parse.quote(kategooria)+"&cmlimit=500").read().decode("utf-8")) for kirje in obj["query"]["categorymembers"]: if not kirje["title"].startswith("Kategooria"): if kirje["title"] not in isikud: isikud[kirje["title"]]=set() isikud[kirje["title"]].add(kategooria) else: nimetus=kirje["title"][len("Kategooria:"):] if nimetus not in kategooriad: kategooriad[nimetus]=kategooria uuedKategooriad.append(nimetus) uuriKategooria("Eesti inimesed") while uuedKategooriad: uus=uuedKategooriad.pop(0) print(uus, len(uuedKategooriad)) uuriKategooria(uus) kataloog="/content/drive/MyDrive/oma/2023/08/" with open(kataloog+"wiki_isikud.json", "w", encoding="utf-8") as f2: json.dump(isikud2, f2) with open(kataloog+"wiki_kategooriad.json", "w", encoding="utf-8") as f2: json.dump(kategooriad, f2) kpuhver={"Eesti inimesed":[]} for rida in kategooriad: if kategooriad[rida] not in kpuhver: kpuhver[kategooriad[rida]]=[] kpuhver[kategooriad[rida]].append(rida) kpuhver f2=open(kataloog+"wiki_kategooriapuu.txt", "w", encoding="utf-8") def kuva(koht, taane): print(" "*taane, koht, file=f2) if koht in kpuhver: for alamkoht in kpuhver[koht]: kuva(alamkoht, taane+2) kuva("Eesti inimesed", 0) f2.close()