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的网络请求,我们需要手动授权:
- 按下Win键,搜索“Windows Defender防火墙”并打开应用。
- 在左侧菜单点击允许应用或功能通过Windows Defender防火墙。
- 点击页面上方的更改设置(需要管理员权限,确认即可)。
- 在应用列表里找你的Python程序(可能显示为
Python.exe或Python39.exe,对应你的Python3.9版本):- 如果找到了,勾选它对应的专用和公用选项,点击确定。
- 如果没找到,点击页面下方的允许其他应用,点击浏览,导航到你的Python安装目录:
C:\Users\Administrator.KRATER\AppData\Local\Programs\Python\Python39\python.exe,选中后点击添加,再勾选权限并确定。
第三步:检查并配置代理设置
如果系统开启了代理,可能会导致IMDbPy无法正常连接:
- 按下Win键,打开设置,进入网络和Internet → 代理。
- 查看“自动代理设置”和“手动代理设置”:
- 如果不需要代理,直接关闭所有代理选项,然后重启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可能无法正常请求数据:
- 按下Win+R,输入
cmd打开命令提示符。 - 在命令提示符里输入以下命令更新IMDbPy:
pip install --upgrade imdbpy - 等待更新完成后,重新运行你的脚本。
额外:修复代码中的小问题
虽然这不是导致连接错误的原因,但你的代码里有几处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
相关产品推荐
相关产品推荐

