2017-11-13 20 views
2

인구 통계 (성별, 연령 그룹)별로 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) 

여기에 출력됩니다 : 당신이 볼 수 있듯이

print(m)

Drive

print(votes)

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

은 "표"가 출력됩니다 조금 벗어났다. imdbpy를 사용하여 등급 세부 정보를 추출 할 수있는 방법이 있습니까?

+0

I 타이어 같은 코드가 라이브러리에 오류 같습니다 " 'AttributeError 'DOMHTMLPlotParser'객체가 상기 예외 처리 동안 어떠한 속성 '_useModule' 가없는 다른 예외가 발생 MSG = MSG % self.args 오류 :위한 충분하지 인자 매트 문자열 호출 스택 : 메시지 : '% S는 : % S : 심판 수집 할 수없는' 인수 : ('DOMHTMLPlotParser') ' 드라이브 ", 이상하게 제목이 아니라 다른 데이터 – oetoni

+0

@oetoni를 인쇄 : 그 버그를 저장소 버전에서 이미 수정되었습니다. –

답변

1

님의 직접 .get_movie_XYZ (...) 메소드를 호출 안된다. 그들은 IMDB() 업데이트 (...) 방법을 사용하여 동영상 인스턴스를 갱신하기 위해 내부적으로 사용됩니다. 예를 들어

: 당신이 사용할 수있는 모든 정보 세트를 알고 싶다면

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_infoset() 전화; 주어진 정보 세트가 업데이트되었을 때 Movie 인스턴스의 어떤 키가 추가되었는지 보려면 movie.infoset2key 매핑을 사용하십시오.

자세한 내용은 official documentation을 참조하십시오. 데이터의 형식에 대해서는

,이 코드 :이 같은

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')) 

의지의 출력 예시 : median 8 arithmetic mean 7.8 number of votes {1: 8626, 2: 4135, 3: 5762, 4: 9264, 5: 17595, 6: 39440, 7: 84746, 8: 133331, 9: 98870, 10: 75737} demographics {'imdb staff': {'rating': 7.8, 'votes': 36}, 'aged under 18': {'rating': 8.5, 'votes': 844}, 'non us users': {'rating': 7.8, 'votes': 250586}, 'top 1000 voters': {'rating': 7.6, 'votes': 739}, 'males aged 45 plus': {'rating': 7.4, 'votes': 24213}, 'aged 45 plus': {'rating': 7.4, 'votes': 28779}, 'aged 18 29': {'rating': 7.9, 'votes': 183217}, 'us users': {'rating': 8.0, 'votes': 71299}, 'aged 30 44': {'rating': 7.7, 'votes': 181063}, 'males aged under 18': {'rating': 8.5, 'votes': 705}, 'males aged 30 44': {'rating': 7.8, 'votes': 152988}, 'females aged under 18': {'rating': 7.9, 'votes': 133}, 'males aged 18 29': {'rating': 8.0, 'votes': 148749}, 'females aged 45 plus': {'rating': 7.4, 'votes': 4004}, 'imdb users': {'rating': 7.8, 'votes': 477506}, 'females aged 18 29': {'rating': 7.6, 'votes': 32575}, 'females': {'rating': 7.6, 'votes': 65217}, 'males': {'rating': 7.9, 'votes': 341617}, 'females aged 30 44': {'rating': 7.5, 'votes': 25465}}

+0

감사합니다. @Davide. 이제 구문을 더 잘 이해하고 다른 세부 정보 (예산, 총액 등)를 가져 오는 데 사용했습니다. * 희망 사항으로 * 등급 기능이 수정 될 때 다음 업데이트를 위해 계속 조정됩니다. – driskerr

+0

@driskerr 파서가 수정되어야합니다. 할 수 있으면 테스트 해보십시오 (그리고 만족스러운 답을 얻은 경우 수락하십시오). –

+0

hmm 이것이 정확히 찾고자하는 것이지만 불행히도 imdbpy를 다시 설치하면 코드가 정확히 쓰여지고 다음과 같은 결과가 나타납니다. '중간 값 없음 산술 평균 없음 득표 수 없음 인구 통계 없음 – driskerr