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

Python脚本借助IMDbPy获取IMDB数据时遭遇WinError 10061连接被拒绝错误的分步解决请求

解决IMDbPy连接被拒绝(WinError 10061)的分步指南

看到你遇到了ConnectionRefusedError: [WinError 10061]的问题,这通常是因为Python脚本无法建立到IMDb服务器的连接,或者连接被系统拦截了。作为Python新手,我会给你非常详细的分步操作来解决这个问题:

第一步:确认基础网络连通性

首先我们要排除网络本身无法访问IMDb的问题:

  • 打开浏览器,直接访问这个URL:https://www.imdb.com/find?q=titanic&s=tt
    • 如果页面打不开,说明你的网络无法访问IMDb,需要检查网络环境或调整网络设置。
    • 如果页面能正常加载,那问题出在脚本、库或系统防火墙设置上,继续往下看。

第二步:允许Python通过Windows Defender防火墙

Windows Defender防火墙可能拦截了Python的网络请求,我们需要手动授权:

  1. 按下Win键,搜索“Windows Defender防火墙”并打开应用。
  2. 在左侧菜单点击允许应用或功能通过Windows Defender防火墙。
  3. 点击页面上方的更改设置(需要管理员权限,确认即可)。
  4. 在应用列表里找你的Python程序(可能显示为Python.exe或Python39.exe,对应你的Python3.9版本):
    • 如果找到了,勾选它对应的专用和公用选项,点击确定。
    • 如果没找到,点击页面下方的允许其他应用,点击浏览,导航到你的Python安装目录:C:\Users\Administrator.KRATER\AppData\Local\Programs\Python\Python39\python.exe,选中后点击添加,再勾选权限并确定。

第三步:检查并配置代理设置

如果系统开启了代理,可能会导致IMDbPy无法正常连接:

  1. 按下Win键,打开设置,进入网络和Internet → 代理。
  2. 查看“自动代理设置”和“手动代理设置”:
    • 如果不需要代理,直接关闭所有代理选项,然后重启Python脚本。
    • 如果确实需要使用代理,在代码里添加代理配置:
      修改你的代码,初始化IMDb对象后加入代理设置:
      from imdb import IMDb
      ia = IMDb()
      # 替换成你的代理地址和端口,比如http://127.0.0.1:1080
      ia.set_proxy('http://your-proxy-address:port')
      # 后续代码保持不变
      movie = ia.search_movie('titanic')
      # ... 剩余代码
      

第四步:更新IMDbPy库

IMDb的页面结构可能更新了,旧版本的IMDbPy可能无法正常请求数据:

  1. 按下Win+R,输入cmd打开命令提示符。
  2. 在命令提示符里输入以下命令更新IMDbPy:
    pip install --upgrade imdbpy
    
  3. 等待更新完成后,重新运行你的脚本。

额外:修复代码中的小问题

虽然这不是导致连接错误的原因,但你的代码里有几处join用法不正确,会导致输出异常。比如director['name'].join(" ,")会把导演名字拆成字符和逗号拼接,正确写法如下:

from imdb import IMDb
ia=IMDb()
movie = ia.search_movie('titanic')
print (movie[0])
id= movie[0].movieID
print(id)
movie2 = ia.get_movie(id)
print('/dir:')
# 用逗号分隔导演名字
directors = [director['name'] for director in movie2['directors']]
print(' , '.join(directors))
print()
print('/cast:')
# 只打印前10位演员避免输出过长
casts = [cast['name'] for cast in movie2['cast'][:10]]
print(' , '.join(casts))
print()
print('/genre:')
genres = [genre for genre in movie2['genre']]
print(' , '.join(genres))
print()
print('/runtime:')
print(movie2['runtime'][0] + ' minutes')

按以上步骤操作后,应该能解决你的连接问题。如果还是不行,可以尝试重启电脑后再运行脚本,或者检查网络是否稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 13:57:37