📅  最后修改于: 2023-12-03 15:18:55.894000             🧑  作者: Mango
Python IMDbPY 是一个用于与 IMDb(互联网电影数据库)交互的 Python 库。它提供了一些功能强大的API,可以获取各种电影和电视节目的信息。本文将介绍如何使用 Python IMDbPY 库来获取电视剧系列的运行时间,并以 XML 格式输出结果。
首先,需要确保 Python 已经安装在您的计算机上。然后,您可以使用以下命令来安装 IMDbPY:
pip install IMDbPY
导入 IMDb 模块以及 pml 模块来处理 XML 输出:
import imdb
from imdb.parser.http import IMDbHTTPAccessSystem
from imdb.parser.xml import SimpleXMLParser
from imdb.utils import PriorityQueue
使用 imdb.IMDb() 创建一个 IMDb 对象:
ia = imdb.IMDb()
在 IMDb 网站上找到您想要获取运行时间的电视剧系列,并从 URL 中提取出系列的 ID。例如,如果 IMDb 网址为 https://www.imdb.com/title/tt0903747/
,则 ID 为 tt0903747
。
使用 get_movie_episodes()
函数来获取电视剧系列的剧集列表:
series_id = 'tt0903747'
series = ia.get_movie(series_id)
ia.update(series, 'episodes')
episodes = series['episodes']
遍历剧集列表,使用 IMDb 对象的 update()
方法为每个剧集对象添加所需的信息。然后,通过 get('runtimes')
方法获取剧集的运行时间。将结果存储到一个字典中,其键为剧集的标题,值为剧集的运行时间。
runtimes = {}
for season, episode_list in episodes.items():
for episode, episode_info in episode_list.items():
ia.update(episode_info)
runtimes[episode_info['title']] = episode_info.get('runtimes', ['N/A'])
创建一个函数来将结果以 XML 格式输出:
import xml.etree.ElementTree as ET
def generate_xml(runtimes):
root = ET.Element("episodes")
for title, runtime in runtimes.items():
episode = ET.SubElement(root, "episode")
title_element = ET.SubElement(episode, "title")
title_element.text = title
runtime_element = ET.SubElement(episode, "runtime")
runtime_element.text = str(runtime)
xml_tree = ET.ElementTree(root)
xml_tree.write("runtimes.xml")
将上述步骤封装到一个主函数中,最后调用该函数来执行程序:
def main():
ia = imdb.IMDb()
series_id = 'tt0903747'
series = ia.get_movie(series_id)
ia.update(series, 'episodes')
episodes = series['episodes']
runtimes = {}
for season, episode_list in episodes.items():
for episode, episode_info in episode_list.items():
ia.update(episode_info)
runtimes[episode_info['title']] = episode_info.get('runtimes', ['N/A'])
generate_xml(runtimes)
if __name__ == "__main__":
main()
通过 Python IMDbPY 库,我们可以方便地获取电视剧系列的剧集运行时间,并以 XML 格式输出结果。本文提供了详细的步骤和示例代码,希望能对使用 IMDbPY 进行数据分析或其他相关应用的程序员们有所帮助。