You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IMDbPY中search_movie报KeyError,get_movie正常,如何获取电影年份

解决IMDbPY search_movie()无法获取年份的问题

问题原因

search_movie()返回的是搜索结果的摘要信息,只包含标题、IMDb ID这类最基础的字段,year字段不在默认返回的数据集里;而get_movie()是直接拉取电影的完整详情页数据,所以能正常拿到year。

解决方案

方案1:通过update方法补全电影信息(推荐)

对搜索到的第一个条目调用ia.update()方法,拉取完整数据后就能获取year:

import imdb

ia = imdb.IMDb()
search_results = ia.search_movie("The Shawshank Redemption")

# 取第一个搜索结果
movie = search_results[0]
# 拉取完整电影信息
ia.update(movie)

# 现在可以正常获取year和title了
print(f"{movie['title']} : {movie['year']}")

方案2:从标题字符串中提取年份(不推荐)

部分搜索结果的标题会自带年份(格式为(YYYY)),可以用正则提取,但这种方法不稳定——遇到重名电影、标题里带其他括号内容的情况就会出错:

import imdb
import re

ia = imdb.IMDb()
search_results = ia.search_movie("The Shawshank Redemption")

movie_title = search_results[0]['title']
# 匹配括号里的四位数字
year_match = re.search(r'\((\d{4})\)', movie_title)
if year_match:
    year = year_match.group(1)
    # 去掉标题里的年份部分
    clean_title = re.sub(r'\s*\(\d{4}\)', '', movie_title)
    print(f"{clean_title} : {year}")
else:
    print("无法从标题中提取年份,请使用方案1")

注意事项

  • 方案1是官方认可的可靠方式,虽然需要额外一次网络请求,但能保证数据准确。
  • 如果要批量处理搜索结果,注意控制请求频率,避免被IMDb限制访问。

内容的提问来源于stack exchange,提问作者Prison Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 01:40:04