首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IMDBpy获取屏幕信息

IMDBpy获取屏幕信息
EN

Stack Overflow用户
提问于 2012-12-06 18:26:18
回答 1查看 426关注 0票数 1
代码语言:javascript
复制
import imdb    
ia = imdb.IMDb()
avatar = ia.get_movie("0120667")
ia.update(avatar, 'business')
print avatar['business']

这将返回毛利率的完整列表,以及每个国家/地区的筛选结果。但是我怎么才能只得到筛选信息呢?而且只有一个国家。在本例中,我想要获取的信息是(USA) (2005年7月10日)(3602个屏幕)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-07 22:54:18

代码语言:javascript
复制
import imdb
import re

ia = imdb.IMDb()
avatar = ia.get_movie("0120667")
ia.update(avatar, 'business')
opening_weekends = avatar['business']['opening weekend']

def parseDate(date):
    result = {}

    if re.match(".*\d{4}$", date):
        result['year'] = date[-4:]

    m = re.match(".*(?P<month>January|February|March|April|May|June|July|"
                "August|September|October|November|December).*", date, re.I)
    if m:
        result['month'] = m.group('month').lower()

        # try to grab date too then
        daymatch = re.match("^(?P<day>\d{1,2}).*", date)

        if daymatch:
            result['day'] = daymatch.group('day')       
    return result

def parseBudget(amount):
    """
    assumptions: 
    - currency is always before the number
    - no fractions
    """

    # find index first number
    for i in range(len(amount)):
        if amount[i] in "0123456789":
            amount_idx = i
            break

    currency = amount[:amount_idx].strip()
    amount = re.sub("\D", "", amount[amount_idx:])

    return amount, currency

def parseWeekendGross(gross_text):
    g = gross_text.split(' (')
    if not len(g) == 4:
        return ""
    amount, currency = parseBudget(g[0])
    country = g[1].lstrip('(').rstrip(')')
    date = parseDate(g[2].lstrip('(').rstrip(')'))
    day, month, year = date['day'], date['month'], date['year']
    screens = re.sub("\D", "", g[3])
    if not screens:
        screens = "''"

    return amount, currency, country, day, month, year, screens

for entry in opening_weekends:
    amount, currency, country, day, month, year, screens = parseWeekendGross(entry)
    if country == "USA":
        print("Country: %s" % country)
        print("Date: %s %s %s" % (day, month, year))
        print("Screens: %s" % screens)
        break

上面的代码给出了以下结果:

代码语言:javascript
复制
Country: USA
Date: 10 july 2005
Screens: 3602

解析数据的函数是从这个项目复制的:pyIRDG

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13741561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档