import re import ox.imdb as imdb from oxutils.cache import getUrlUnicode from oxutils.text import findRe def getMovieData(title = '', director = '', imdbId = ''): data = {'posterUrls': []} if not imdbId: imdbId = imdb.getMovieId(title, director) print imdbId html = getUrlUnicode('http://impawards.com/archives/latest.html', timeout = 0) pages = int(findRe(html, '')) for page in range(pages + 1, 0, -1): print page if page <= pages: html = getUrlUnicode('http://impawards.com/archives/page%s.html' % page, timeout = -1) urls = parseArchivePage(html) print urls for url in urls: html = getUrlUnicode(url) d = parseMoviePage(html) print d if d['imdbId'] == imdbId: data['posterUrls'].append(d['posterUrl']) print d['posterUrl'] data['posterUrls'].sort() return data def parseArchivePage(html): urls = [] results = re.compile('', re.DOTALL).findall(html) for result in results: urls.append('http://impawards.com/%s' % result) return urls def parseMoviePage(html): data = {} data['imdbId'] = findRe(html, 'imdb.com/title/tt(.*?) ') data['title'] = findRe(html, '(.*?) \(') data['year'] = findRe(html, '\((.*?)\)') result = findRe(html, '') if result: url = 'http://impawards.com/%s/%s' % (data['year'], result) html = getUrlUnicode(url, timeout = -1) d = parsePosterPage(html, data['year']) data['posterUrl'] = d['posterUrl'] else: data['posterUrl'] = 'http://impawards.com/%s/%s' % (data['year'], findRe(html, '