Есть ли способ извлечь обзоры IMDb, используя IMDbPY? - PullRequest
0 голосов
/ 29 января 2020

Мне не нужен набор данных, который доступен в Kaggle. Я хочу извлечь обзор mov ie из IMDb, используя IMDbPY или любой другой метод очистки.

https://imdbpy.github.io/

Ответы [ 2 ]

1 голос
/ 29 января 2020

Пока это не очевидно из imdbpy документов . Вы всегда можете проверить атрибуты переменной, проверив ключи переменных. Не вся информация, которую вы ищете, не сразу доступна, когда вы очищаете mov ie с помощью imdbpy. В вашем случае вы хотите получить отзывы. Таким образом, вы должны добавить их. Мы можем видеть в информационном наборе, что есть три различных типа обзоров; 'обзоры', 'внешние обзоры' и 'критические отзывы c. Связанные с ними ключи еще не добавлены. Пример ниже показывает, как это делается.

from imdb import IMDb

# create an instance of the IMDb class
ia = IMDb()

the_matrix = ia.get_movie('0133093')
print(sorted(the_matrix.keys()))

# show all information sets that can be fetched for a movie
print(ia.get_movie_infoset()) #Information we can add. Keys will be added
ia.update(the_matrix, ['external reviews'])
ia.update(the_matrix, ['reviews'])
ia.update(the_matrix, ['critic reviews'])
# show which keys were added by the information set
print(the_matrix.infoset2keys['external reviews']) #no external reviews, so no key is added
print(the_matrix.infoset2keys['reviews']) # A lot of reviews. Adds key: 'reviews'
print(the_matrix.infoset2keys['critic reviews']) #Adds the keys: 'metascore', and 'metacritic url'
# print(the_matrix['reviews'])
print(sorted(the_matrix.keys())) #Check out the new keys that we have added
0 голосов
/ 22 апреля 2020

Да, вы можете извлечь отзывы, используя IMDbPY. Colab Notebook .

# to install the imdbpy library, just including it for noob-friendliness     
pip install imdbpy

Вот что вам нужно понять об IMDbPY: он извлекает данные из IMDB для различных объектов, таких как mov ie, person и company, используя методы get_mov ie, get_person и get_company соответственно. Однако дело в том, что есть много информации для извлечения и извлечения всего, что может быть не лучшим решением (так как это потребует времени и полосы пропускания). Таким образом, данные сгруппированы в небольшие части информации, известной как «информационный набор».

Код для извлечения mov ie «Матрица (1999)».
(Примечание: «0133093» - это идентификатор заголовка IMDb без «tt», пример: https://www.imdb.com/title/tt0133093/)

from imdb import IMDb
ia = IMDb()
theMatrix = ia.get_movie('0133093')

По умолчанию объект mov ie имеет Следующая информация устанавливает 'main', 'plot', 'synopsis', вы можете проверить это, используя .current_info . Теперь, как мы могли видеть из этого, объект mov ie по умолчанию не получает набор информации «reviews».

theMatrix.current_info

#output:
['main', 'plot', 'synopsis']

Мы можем передать необязательный аргумент "info =" методу get_mov ie, если вы знаете, какие наборы информации вы хотите получить. В этом случае 'reviews'.

theMatrix = ia.get_movie('0133093',['reviews'])
theMatrix.current_info

#output:
['reviews']

theMatrix['reviews']

#output:
[{'author': 'ur0540275',
  'content': "The story of a reluctant Christ-like protagonist...",
  'date': '19 September 2000',
  'helpful': 0,
  'not_helpful': 0,
  'rating': 1,
  'title': ''},
 {'author': 'ur15794099',
  'content': '** May contain spoilers **There aren\'t many movies...',
  'date': '26 July 2014',
...
...

Если у вас уже есть объект mov ie, и вы хотите добавить еще несколько информационных наборов без необходимости повторного извлечения всего объекта mov ie, тогда может помочь update .

theMatrix = ia.get_movie('0133093')
theMatrix.current_info

#output
['main', 'plot', 'synopsis']

ia.update(theMatrix,['reviews'])
theMatrix.current_info

#output
['main', 'plot', 'synopsis', 'reviews']

Оба способа, описанные выше, могут помочь вам получить не только «отзывы», но и любые дополнительные наборы информации, которые вы хотите получить. Однако вам необходимо знать, какие доступные информационные наборы поддерживает каждый объект (mov ie, человек или компания). Для этого вы можете использовать методы ia.get_movie_infoset, ia.get_person_infoset или ia.get_company_infoset соответственно.

sorted(ia.get_movie_infoset())

#output:
['airing',
 'akas',
 'alternate versions',
 'awards',
 'connections',
 'crazy credits',
 'critic reviews',
 'episodes',
 'external reviews',
 ...
 ...
 'release dates',
 'release info',
 'reviews',
 'sound clips',
 'soundtrack',
 'synopsis',
 'taglines',
 'technical',
 'trivia',
 'tv schedule',
 'video clips',
 'vote details']

Со всей этой теорией, чтобы лучше узнать и понять imdbpy. Вот один вкладыш для получения отзывов о mov ie:)

ia.get_movie_reviews('0133093')

#output:
[{'author': 'ur0540275',
  'content': "The story of a reluctant Christ-like protagonist...",
  'date': '19 September 2000',
  'helpful': 0,
  'not_helpful': 0,
  'rating': 1,
  'title': ''},
 {'author': 'ur15794099',
  'content': '** May contain spoilers **There aren\'t many movies...',
  'date': '26 July 2014',
...
...
...