Dus gisteren nacht rond 10 pm na een vermoeiende dag op het werk, ik besefte dat zijn enkel dinsdag alleen en ook daar geen Arsenal champion's league wedstrijd vandaag is. Ik besloot om een film te bekijken. Een goede sport op basis van film.
Het goede ding is dat ik heb enkele goede hollywood films in mijn harde schijf (die ik heb meestal gekopieerd vanaf de hardeschijf van mijn vrienden), en ik heb niet keek de meesten van hen.
Maar welke film behoort tot het genre sport!!. Ahh. Ik ga niet om te doen een handmatige zoeken voor elke film op google/imdb te vinden zijn genre.
Ik wilde een snelle oplossing. Een kleine python script zal doen de truc voor mij hier. Het script zal nemen van de naam van elk bestand in de map van mijn film aanwezig en geef me de genre, alsmede de imdb rating van die film.
Niet zo gemakkelijk bro. Dus eerst en vooral, is de bestandsnaam niet de naam van de film. Bestandsnamen zijn als We.Are.Marshall[2006]DvDrip[Eng]-aXXo of White House Down 2013 Alvin 720 p x264 AAC - ongerepte [P2PDL] of The Sting.avi etc.
Een directe zoekactie naar deze namen waren niet geven mij een resultaat in IMDB. dus ik nodig om de naam van de film uit deze bestandsnamen. Laat me schrijven van een snelle regex daarvoor. Niet zo moeilijk. Na het doen van sommige hit en probeer ik kwam met "^(.+?) \s[\ (\ [\d]. + " die gaf eerlijke resultaten voor het grootste deel van de gevallen. Rest werd behandeld door re.
Nu komt het hectische deel. ophalen van de uitvoer met behulp van urllib en het gebruik van BeautifulSoup het parseren. Ahh.!! Parsing is vermoeiend. Vooral op dinsdag nacht: P. Google hielp me daarin. Daar is dit pakket IMDbPY al. Hoewel het heeft enkele problemen, als het niet met python3 werkt en het is een beetje traag. Maar nog steeds was het oplossen van mijn use-case.
Daarna schreef ik een snelle script dat vindt de naam van de film uit de bestandsnaam van de map van mijn film en heb mij het resultaat. Ahha. probleem opgelost.
<p>__author__ = 'harsh'<br>import imdb import os import re ia = imdb.IMDb() inp=raw_input("enter the movie directory location: ") print(inp) for i in os.listdir(inp): i=i.replace("."," ") i=i.strip("avi") i=i.strip("mkv") m=re.search("^(.+?)\s[\(\[\d].+",i) if m: name=m.group(1) s_result = ia.search_movie(name) if(len(s_result)>0): x=s_result[0] ia.update(x) if(x.has_key('genres') and x.has_key('rating')): print(name+"-"+str(x['rating'])+" "+str(x['genres']))</p>
Het duurde ongeveer 10 minuten om mij het resultaat. En ja ik heb ervoor gekozen Hoosiers, het eerste resultaat dat genre sport (ik altijd geloofd hebzuchtig is goed: P). het was echt een mooi horloge.
Kan ik een heleboel andere dingen ook. Zoals de films sorteren op aflopende volgorde van imdb rating en etc. Ja zeker. Zal later doen. : P