📜  Python IMDbPY – XML 格式的系列信息(1)

📅  最后修改于: 2023-12-03 15:34:01.501000             🧑  作者: Mango

Python IMDbPY – XML 格式的系列信息

IMDbPY 是一个 Python 包,用于获取 Internet 电影数据库(IMDb)的数据和信息,这个包支持 XML 和 JSON 等多种数据格式。其中,XML 格式是比较常用的一种,因为它易于解析和处理,特别适用于需要进行数据分析和可视化的场景。

本文将介绍如何使用 Python IMDbPY 包来获取 XML 格式的系列信息,以及如何解析和处理这些信息,包括演员、导演、编剧、主题曲等等。首先,我们需要安装 IMDbPY 包:

pip install IMDbPY

接下来,我们可以通过以下代码来获取 XML 格式的系列信息:

from imdb import IMDb
import xml.etree.ElementTree as ET

series_id = '0096697'  # 某个系列的 IMDb ID,例如 Friends

ia = IMDb()
series = ia.get_movie(series_id)

xml_str = ia.get_movie_xml(series_id)
root = ET.fromstring(xml_str)
series_xml = root.find('series')
series_title = series_xml.findtext('title')
series_year = series_xml.findtext('year')
series_rating = series_xml.findtext('rating')

print(f"Series title: {series_title}")
print(f"Series year: {series_year}")
print(f"Series rating: {series_rating}")

上述代码中,我们首先通过 IMDb 类的 get_movie 方法来获取某个系列的基本信息,包括标题、年份、评分等等。接着,我们使用 get_movie_xml 方法来获取 XML 格式的系列信息,并通过 xml.etree.ElementTree 来解析 XML。

最后,我们可以通过 findfindtext 方法来获取 XML 标签的文本值,以获取系列的标题、年份、评分等信息。需要注意的是,某些 XML 标签的文本值可能为空,所以在使用 findtext 时需要注意是否返回了 None

接下来,我们可以继续处理 XML 格式的系列信息,例如获取演员、导演、编剧等信息:

actors_xml = series_xml.find('actors')
directors_xml = series_xml.find('directors')
writers_xml = series_xml.find('writers')
themes_xml = series_xml.find('themes')

actors = []
for actor_xml in actors_xml.findall('actor'):
    actor_name = actor_xml.findtext('name')
    actor_role = actor_xml.findtext('role')
    actors.append((actor_name, actor_role))

directors = []
for director_xml in directors_xml.findall('director'):
    director_name = director_xml.findtext('name')
    directors.append(director_name)

writers = []
for writer_xml in writers_xml.findall('writer'):
    writer_name = writer_xml.findtext('name')
    writers.append(writer_name)

themes = []
for theme_xml in themes_xml.findall('theme'):
    theme_name = theme_xml.findtext('name')
    themes.append(theme_name)

print(f"Actors: {actors}")
print(f"Directors: {directors}")
print(f"Writers: {writers}")
print(f"Themes: {themes}")

上述代码中,我们通过 find 方法获取演员、导演、编剧、主题曲等信息的 XML 元素,然后使用 findallfindtext 方法分别获取对应标签的所有子标签和文本值。

最终,我们可以通过列表和元组等数据结构,保存演员、导演、编剧、主题曲等信息,并将这些信息用于数据分析、可视化等场景中。

以上就是使用 Python IMDbPY 包获取 XML 格式的系列信息的简介。如果您需要获取其他数据类型或者更详细的信息,可以查阅 IMDbPY 的文档,或者参考其他的示例代码。