Python 按人口统计提取IMDb评级的难度(使用IMDbpy)

Python 按人口统计提取IMDb评级的难度(使用IMDbpy),python,imdb,imdbpy,Python,Imdb,Imdbpy,我想按人口统计(性别、年龄组)收集IMDb评级详细信息 当我尝试在imdbpy中使用get_movie_vote_details模块时,我的输出为空。 这是我的密码: import imdb i = imdb.IMDb(accessSystem='http') movie = i.get_movie('0780504') print(movie) votes = i.get_movie_vote_details('0780504') print(votes) 以下是输出

我想按人口统计(性别、年龄组)收集IMDb评级详细信息

当我尝试在imdbpy中使用get_movie_vote_details模块时,我的输出为空。 这是我的密码:

 import imdb

 i =  imdb.IMDb(accessSystem='http')

 movie = i.get_movie('0780504')

 print(movie)

 votes = i.get_movie_vote_details('0780504')

 print(votes)
以下是输出:

打印(m)

驱力

打印(投票)

{'charactersRefs':{},'data':{},'namesRefs':{},'titlesRefs':{}


如您所见,“投票”输出有点不正确。有没有一种方法可以使用imdbpy提取评级详细信息?

您不应该直接调用.get_movie_XYZ(…)方法:它们在内部用于使用IMDb().update(…)方法更新电影实例

例如:

import imdb

i = imdb.IMDb(accessSystem='http')

movie = i.get_movie('0780504')
i.update(movie, 'vote details')
print(movie.get('mean and median')
如果您想知道所有可用的信息集,请调用
i.get_movie\u infoset()
;要查看在更新给定信息集时添加了电影实例的哪些键,请使用
Movie.infoset2key
映射

有关更多信息,请参阅

关于数据格式,此代码:

from imdb import IMDb
ia = IMDb()
m = ia.get_movie('0780504', 'vote details')
print('median', m.get('median'))
print('arithmetic mean', m.get('arithmetic mean'))
print('number of votes', m.get('number of votes'))
print('demographics', m.get('demographics'))
将输出如下内容:

中位数8
算术平均数7.8
票数{1:8626、2:4135、3:5762、4:9264、5:17595、6:39440、7:84746、8:13331、9:98870、10:75737}
人口统计数据{'imdb员工:{'rating':7.8,'投票数':36},{'rating':8.5,'投票数':844},'非美国用户:{'rating':7.8,'投票数':250586},'前1000名选民:{'rating':7.6,'投票数':739},'45岁以上男性:{'rating':7.4,'rating':24213},'45岁以上,{'rating':7.4,'投票数:28779},'{'rating':7.9,'票数':183217},'美国用户':{'rating':8.0,'票数':71299},'30 44岁':{'rating':7.7,'票数':181063},'18岁以下男性:{'rating':8.5,'票数':705},'30 44岁男性:{'rating':7.8,'票数:152988},'18岁以下女性:{'rating':7.9,'票数:133},'18 29岁男性:{'rating':8.0,'票数:148749},“45岁以上女性:{rating':7.4,'投票数':4004},'imdb用户:{rating':7.8,'投票数':477506},'18 29岁女性:{rating':7.6,'投票数':32575},'女性:{'rating':7.6,'投票数':65217},'男性:{'rating':7.9,'投票数:341617},'30 44岁女性:{'rating':7.5,'投票数:25465}

我使用了相同的代码,看起来库中出现了错误:“'AttributeError:'DOMHTMLPlotParser'对象没有属性'\u useModule'在处理上述异常期间,发生了另一个异常:msg=msg%self.args TypeError:格式字符串调用堆栈的参数不足:消息:“%s:无法收集引用:%s”参数:('DOMHTMLPlotParser',)”驱动器,奇怪的是,打印的是标题,而不是另一个data@oetoni:该错误已在存储库版本中修复。谢谢@Davide。我现在更好地理解了语法,并使用它获取了其他详细信息(预算、总额等)。我将继续关注下一次更新,希望评级功能得到修复。@driskerr解析器现在应该得到修复。如果可以,请测试它(如果您发现答案令人满意,请接受它).hmm这正是我想要的,但不幸的是,当我重新安装imdbpy并按照编写的方式运行代码时,我得到了以下输出:
中值无算术平均值无投票数无人口统计无
@driskerr:您使用过Github版本吗?我还没有打包/发布它(将在几周内完成:我想修复一些东西)hallejuah!它现在可以工作了!我以为我已经重新安装了Github版本,但我想我在某个地方搞砸了。谢谢你帮我解决这个问题