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

IMDbPY中get_top250_movies()返回空列表问题求助

IMDbPY调用get_top250_movies返回空列表的原因与解决方案

问题原因

  • 库停止维护:原IMDbPY库已停止更新,IMDb官方页面结构、数据接口发生变更,旧版本无法适配新的请求逻辑,导致获取不到有效数据。
  • 网络访问限制:IMDb存在反爬机制,若你的IP被识别为爬虫或所在地区无法正常访问IMDb,请求会被拦截,最终返回空列表。
  • 客户端配置缺失:默认的HTTP客户端未设置模拟浏览器的请求头,被IMDb服务器判定为非合法请求,拒绝返回数据。

解决方案

1. 迁移至维护中的替代库Cinemagoer

IMDbPY已正式更名为Cinemagoer并持续维护,完全兼容原API接口:

  • 卸载旧库并安装新库:
pip uninstall IMDbPY -y
pip install cinemagoer
  • 使用原代码即可正常获取数据:
from imdb import IMDb
imdb_instance = IMDb()
top250 = imdb_instance.get_top250_movies()
print(top250)

2. 解决网络访问问题

  • 配置代理:若IP被拦截或地区无法访问,初始化时添加代理配置:
from imdb import IMDb
# 替换为你的代理地址和端口
proxy_config = {'http': 'http://proxy.example.com:8080', 'https': 'https://proxy.example.com:8080'}
imdb_instance = IMDb(proxy=proxy_config)
top250 = imdb_instance.get_top250_movies()
  • 添加请求头:模拟浏览器的User-Agent可绕过基础反爬检测:
from imdb import IMDb
imdb_instance = IMDb()
imdb_instance._urlOpener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36')]
top250 = imdb_instance.get_top250_movies()

3. 手动爬取IMDb Top250页面

若上述方案仍失效,可直接爬取IMDb官方Top250页面并解析数据:

import requests
from bs4 import BeautifulSoup

# 模拟浏览器请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}
response = requests.get('https://www.imdb.com/chart/top/', headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')

top250_movies = []
# 解析页面中的电影条目
for item in soup.select('li.ipc-metadata-list-summary-item'):
    rank_title = item.find('h3', class_='ipc-title__text').text.split('. ', 1)
    rank = rank_title[0]
    title = rank_title[1]
    rating = item.find('span', class_='ipc-rating-star--rating').text
    top250_movies.append(f"#{rank} {title} - 评分: {rating}")

for movie in top250_movies:
    print(movie)

内容的提问来源于stack exchange,提问作者Hani Rahimi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:30:15