def get_scores(self, read): """ parses IMDB listing page and fetches relevant information :param read: read object :return: dict of popularity, best_rating, users, reviews, and external_reviews """ helper = ScrapeHelper(read) popularity = self.getPopularity(helper) popularity_change = self.meter_change(helper) score_div = helper.find_div_by_itemtype( 'http://schema.org/AggregateRating') rating = float( helper.find_by_itemprop('span', 'ratingValue', score_div).text.replace(",", "")) best_rating = int( helper.find_by_itemprop('span', 'bestRating', score_div).text.replace(",", "")) anchors = helper.find_all_anchors(score_div) users, reviews, external_reviews = '', '', '' for anchor in anchors: href = anchor.get('href').split('?')[0] count = long(self.getCount(anchor)) if href == 'ratings': users = count elif href == 'reviews': reviews = count elif href == 'externalreviews': external_reviews = count return { 'popularity': popularity, 'popularity_change': popularity_change, 'rating': rating, 'best_rating': best_rating, 'users': users, 'reviews': reviews, 'external_reviews': external_reviews }