def vpiši_igre(): obrnjen_slovar_konzol = slovar_konzol.vrni_slovar() obrnjen_slovar_žanrov = slovar_zanrov.vrni_slovar() sez_slojev = delo_s_csvji.preberi_csv() vse_igre = [] try: # To bo preneslo vseh približno 8500 strani, kar je lahko malce veliko. # Če želimo prej prenehati prenašati strani, lahko pritisnemo CTRL + C, kar sproži KeyboardInterrupt. # Tako se bodo dosedaj obdelani podatki v except stavku shranili v csv for i, slo in enumerate(sez_slojev): print(i) link = "https://gamefaqs.gamespot.com" + slo["povezava"] html = prenos_strani.prenesi_eno_stran(link) slovar_posamezne_igre = obdelava_html_igra.vrni_slovar_podatkov_iz_posamezne_strani_igre(html) print(slovar_posamezne_igre) # to bi lahko tudi zamenjali po združevanju. Vseeno je slovar_posamezne_igre["zanr"] = obrnjen_slovar_žanrov[slovar_posamezne_igre["zanr"]] # zamenjamo id žanra združen_slo = združi_dva_slovarja(slo, slovar_posamezne_igre) # zamenjamo konzolo s šifro združen_slo["konzola"] = obrnjen_slovar_konzol[konzole[združen_slo["konzola_kratica"]]] presekan_slovar = presekaj_slovar_s_ključi(združen_slo, ["id_igre", "ime", "konzola", "razvijalec", "izdajatelj", "datum", "franšiza", "zanr", "ocena", "tezavnost", "dolzina", "povezava"]) print(presekan_slovar) vse_igre.append(presekan_slovar) except Exception as e: print("Napaka: " + str(e)) # če je več franšiz, se vzame le ena (ta zadnja navedena) delo_s_csvji.zapisi_csv(vse_igre, ["id_igre", "ime", "konzola", "razvijalec", "izdajatelj", "datum", "franšiza", "zanr", "ocena", "tezavnost", "dolzina", "povezava"], "igre2.csv")
def vpiši_konzole(): link = vrni_link_do_strani.link() html = prenos_strani.prenesi_eno_stran(link) vse_konzole = obdelava_html_konzole.vrni_slovar_podatkov_konzol_iz_niza( html) delo_s_csvji.zapisi_csv(vse_konzole, ["id_konzole", "ime_konzole"], "konzole.csv")
def preberi_strani_in_izpiši_csv(): vse_igre = [] for i in range(172): print(i) link = vrni_link_do_strani.link(i) html = prenos_strani.prenesi_eno_stran(link) igre = obdelava_html_seznam.vrni_slovar_podatkov_iger_iz_niza(html) vse_igre += igre delo_s_csvji.zapisi_csv(vse_igre, [ "id_igre", "ime", "konzola", "konzola_kratica", "ocena", "tezavnost", "dolzina", "povezava" ], "igre.csv")
def vpiši_konzole(): seznam_slovarjev = delo_s_csvji.preberi_csv("konzole.csv") print(seznam_slovarjev) nov_sez = [] for slovar in seznam_slovarjev: ime = slovar["ime_konzole"] if ime not in datum_izida: continue # če naletimo na konzolo, ki za nas ni relevantna nov_sez.append({ "id_konzole": slovar["id_konzole"], "datum_konzole": datum_izida[ime] }) delo_s_csvji.zapisi_csv(nov_sez, ["id_konzole", "datum_konzole"], "datumi_konzol.csv")
def vpiši_žanre(): link = vrni_link_do_strani.link() html = prenos_strani.prenesi_eno_stran(link) vsi_žanri = obdelava_html_zanri.vrni_slovar_žanrov_iz_niza(html) prefiltriran_seznam_slovarjev = [] for slovar in vsi_žanri: število_podžanrov = [ slovar["zanr1"] is not None, slovar["zanr2"] is not None, slovar["zanr3"] is not None, slovar["zanr4"] is not None ].count(True) # izboljšaj sintakso (TODO) if število_podžanrov == 0: raise Exception("Ni bilo najdenih žanrov") elif število_podžanrov == 1: # ne bomo vzeli, če je le en žanr, saj nobena igra nima tega continue prefiltriran_seznam_slovarjev.append(slovar) delo_s_csvji.zapisi_csv(prefiltriran_seznam_slovarjev, ["id_zanra", "zanr1", "zanr2", "zanr3", "zanr4"], "zanri.csv")
"NS": "Nintendo Switch", "TG16": "TurboGrafx-16", "TCD": "Turbo CD", "VBOY": "Virtual Boy", "VITA": "PlayStation Vita", "WEB": "Online/Browser", "WII": "Wii", "WIIU": "Wii U", "XBOX": "Xbox", "X360": "Xbox 360", "XONE": "Xbox One" } obrnjen_slovar_konzol = vrni_slovar() nov_seznam = [] seznam_slovarjev = delo_s_csvji.preberi_csv("igre.csv") for slo in seznam_slovarjev: # print(slo) slo["konzola"] = obrnjen_slovar_konzol[konzole[slo["konzola_kratica"]]] nov_seznam.append( presekaj_slovar_s_ključi(slo, [ "id_igre", "ime", "konzola", "ocena", "tezavnost", "dolzina", "povezava" ])) delo_s_csvji.zapisi_csv( nov_seznam, ["id_igre", "ime", "konzola", "ocena", "tezavnost", "dolzina", "povezava"], "igre.csv")