import os,sys,re,urllib titleReg = re.compile(r'(.*)<.*?') directorsReg = re.compile(r'.*?Directed by.*') writersReg = re.compile(r'.*?Writing credits.*') genresReg = re.compile(r'.*?Genre:.*') yearReg = re.compile(r'<a href="/Sections/Years/.*">(.*?)</a>') taglineReg = re.compile(r'.*?Tagline:</b>(.*?)<a href.*') plotReg = re.compile(r'.*?Plot Outline:</b>(.*?)<a href.*') ratingReg = re.compile(r'.*?User Rating.*') #ratingReg = re.compile(r'<b>(.*?/.*?)</b>(.*)') runtimeReg = re.compile(r'.*?Runtime.*') #runtimeReg = re.compile(r'(.*? min).*') castReg = re.compile(r'.*?Cast overview.*') countryReg = re.compile(r'.*?Country:.*') languageReg = re.compile(r'.*?Language:.*') details = re.compile(r'<p class="plotpar">(.*?)</p>') class IMDb: def __init__(self,url): self.title = None self.directors = None self.writers = None self.genres = None self.details = None self.year = None self.tagline = None self.plot = None self.rating = None self.runtime = None self.cast = None self.country = None self.language = None #sock = open(url,'rb') sock = urllib.urlopen(url) page = sock.readlines() sock.close() i = 0 while i < len(page): if titleReg.match(page[i]): self.title = titleReg.search(page[i]).group(1).strip() if directorsReg.match(page[i]): in_directors = re.compile(r'.*?">(.*?)</.*?') i += 1 self.directors = in_directors.findall(page[i]) if writersReg.match(page[i]): in_writers = re.compile(r'<a href="/name/.*?>(.*?)<') i += 3 if in_writers.search(page[i]) != None: self.writers = in_writers.findall(page[i]) if genresReg.match(page[i]): in_genres = re.compile(r'<a href="/Sections/Genres/.*?>(.*?)<') i += 1 self.genres = in_genres.findall(page[i]) if yearReg.match(page[i]): self.year = yearReg.search(page[i]).group(1).strip() if taglineReg.match(page[i]): self.tagline = taglineReg.search(page[i]).group(1).strip() if plotReg.match(page[i]): self.plot = plotReg.search(page[i]).group(1).strip() if ratingReg.match(page[i]): in_rating = re.compile(r'<b>(.*?)</b> (.*)') i += 4 rating_all = in_rating.findall(page[i]) for rate in rating_all: rated = '%s %s' % (rate[0],rate[1]) self.rating = rated # self.rating = ratingReg.search(page[i]).group(1).strip() if runtimeReg.match(page[i]): in_runtime = re.compile(r'(.*)\n') i += 1 self.runtime = in_runtime.findall(page[i]) # self.runtime = runtimeReg.search(page[i]).group(1).strip() if castReg.match(page[i]): in_actor = re.compile(r'.*?<a href="/name.*?>(.*?)<.*?top">.*?</td>') in_char = re.compile(r'.*?<a href="/name.*?>.*?<.*?top">(.*?)</td>') actor = in_actor.findall(page[i]) char = in_char.findall(page[i]) self.Cast = dict(zip(('actor','character'),(actor,char))) for i in range(len(self.Cast['actor'])): self.cast = '%s as %s' % (self.Cast['actor'][i],self.Cast['character'][i]) if countryReg.match(page[i]): in_country = re.compile(r'<a href=.*?>(.*?)</a>') i += 1 self.country = in_country.findall(page[i]) if languageReg.match(page[i]): in_language = re.compile(r'<a href=.*?>(.*?)</a>') i += 1 self.language = in_language.findall(page[i]) i+=1 try: sock = urllib.urlopen(url+'plotsummary') #sock = open('C:\\Documents and Settings\\No1\\Desktop\\plotsummary1.htm','rb') page = sock.readlines() sock.close() except: pass for i in page: match = details.search(i) if match != None: self.details = match.group(1).strip() break #flick = IMDb("C:\\Documents and Settings\\No1\\Desktop\\Rt.htm") flick = IMDb("http://www.imdb.com/title/tt0265666/") Title = flick.title Directors = flick.directors Writers = flick.writers Genres = flick.genres Details = flick.details Year = flick.year Tagline = flick.tagline Plot = flick.plot Rating = flick.rating Runtime = flick.runtime Cast = flick.cast Country = flick.country Language = flick.language print "Title:\n" + str(Title) print "Director:\n" + str(Directors) print "Writers:\n" + str(Writers) print "Genres:\n" + str(Genres) print "Details:\n" + str(Details) print "Year:\n" + str(Year) print "Tagline:\n" + str(Tagline) print "Plot:\n" + str(Plot) print "Rating:\n" + str(Rating) print "Runtime:\n" + str(Runtime) print "Cast:\n" + str(Cast) print "Country:\n" + str(Country) print "Language:\n" + str(Language)