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

如何在Python中调用speedtest.Speedtest()时启用--secure参数?

解决speedtest.py二次运行出现403 Forbidden的问题

问题重现

原Python脚本:

import speedtest

# Speedtest
test = speedtest.Speedtest()         # <--- line 4

test.get_servers()
best = test.get_best_server()
print(f"Found: {best['host']} located in {best['country']}")

首次运行输出正常:

Found: speedtest.witcom.cloud:8080 located in Germany

但第二次及后续运行会抛出错误:

Traceback (most recent call last):
  File "/Users/zeth/Code/pinger/pinger.py", line 4, in <module>
    test = speedtest.Speedtest()
  File "/usr/local/lib/python3.9/site-packages/speedtest.py", line 1095, in __init__
    self.get_config()
  File "/usr/local/lib/python3.9/site-packages/speedtest.py", line 1127, in get_config
    raise ConfigRetrievalError(e)
speedtest.ConfigRetrievalError: HTTP Error 403: Forbidden

命令行执行speedtest-cli也会报同样错误,但添加--secure参数后(speedtest-cli --secure)可正常运行。尝试手动信任证书,但因Brew安装的Python3.9找不到对应路径,无法解决。

解决方案

在初始化Speedtest实例时,传入secure=True参数,强制使用HTTPS请求,对应命令行的--secure选项:

修改后的代码:

import speedtest

# Speedtest
test = speedtest.Speedtest(secure=True)         # 启用HTTPS

test.get_servers()
best = test.get_best_server()
print(f"Found: {best['host']} located in {best['country']}")

这样就能避免后续运行时的403错误,和命令行使用--secure的效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:30:15