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

如何用Python的googletrans API翻译网页及解决TypeError报错

错误原因

  • 你使用的旧版googletrans已经停止维护,内置调用的谷歌翻译公共接口早已变更,请求后无法拿到正常的JSON返回值,得到的是空值None,解析时就触发了该类型错误。
  • 少部分场景也可能是请求目标网站时没有携带请求头,被反爬规则拦截返回了空内容,你可以先打印page.text验证返回内容是否正常。

现有代码修复方案

首先替换旧版googletrans,改用社区维护的适配分支googletrans==4.0.0-rc1,该版本适配了谷歌翻译最新的接口规则:

  1. 先卸载旧版本,安装适配版本:
pip uninstall googletrans -y
pip install googletrans==4.0.0-rc1
  1. 优化请求逻辑,增加反爬适配和异常校验,修改后的代码如下:
from googletrans import Translator
import requests

# 初始化翻译器,指定超时时间避免卡住
translator = Translator(timeout=10)

url = 'http://www.compactrb.ro/'
# 添加模拟浏览器的请求头,避免被反爬拦截
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'
}

page = requests.get(url, headers=headers)
# 先验证返回内容正常再执行翻译
if page.status_code == 200 and page.text.strip():
    # 指定源语言为罗马尼亚语、目标语言为英文,提高翻译准确率
    translated = translator.translate(page.text, src='ro', dest='en')
    print(translated.text)
else:
    print(f"请求网站失败,状态码:{page.status_code}")

更稳定的替代方案

如果googletrans还是频繁报错,可以改用以下方案实现需求:

  • 方案1:使用谷歌翻译官方API,有免费调用额度,稳定性远高于第三方封装的公共接口,适合批量翻译场景。
  • 方案2:使用国内翻译平台的开放接口,比如百度翻译、有道翻译的公开API,都有免费调用额度,接口规则稳定,不容易出现适配问题。
  • 方案3:如果是少量静态页面处理,可以先用BeautifulSoup提取网页中的正文内容,剔除HTML标签后再执行翻译,能大幅降低翻译器解析异常的概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:06:04