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

使用googletrans翻译DataFrame课程标题失败,返回translatex0000求助

解决googletrans翻译DataFrame返回translatex0000的问题

问题根源

  • 库使用逻辑错误:你直接调用translate.Translator()类构造函数,返回的是Translator对象的内存引用(即你看到的类似translatex0000的内容),而非翻译后的文本结果。
  • 库导入混淆:你导入的google_trans不是官方googletrans库,属于安装或导入环节的错误。
  • 未实例化翻译对象:代码中注释掉了翻译实例的创建语句,但实际使用时未补全,直接调用类导致无效输出。

修正步骤

1. 安装正确的googletrans库

先卸载错误依赖,安装官方稳定版本:

pip uninstall google_trans translate
pip install googletrans==4.0.0-rc1

2. 修正翻译核心逻辑

修改后的关键代码片段:

# 导入官方googletrans库的Translator
from googletrans import Translator

# 实例化翻译器对象
translator = Translator()

# 调用translate方法并提取text属性获取翻译结果
df['Title (hin)'] = df['Title (eng)'].apply(lambda x: translator.translate(x, dest='hi').text)

3. 完整修正后的代码

from googletrans import Translator
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
import pandas as pd
import time

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument("window-size=1920,1080")
driver = webdriver.Chrome(options=chrome_options)
url = "https://www.classcentral.com/collection/top-free-online-courses"
driver.get(url)

try:
    while True:
        WebDriverWait(driver, 1).until(
                expected_conditions.element_to_be_clickable((By.XPATH, "//button[@data-name='LOAD_MORE']"))
            ).click()
        time.sleep(0.5)
except Exception as e:
    pass

all_courses = driver.find_element(by=By.CLASS_NAME, value='catalog-grid__results')
courses = all_courses.find_elements(by=By.CSS_SELECTOR, value='[class="color-charcoal course-name"]')

df = pd.DataFrame([[course.text, course.get_attribute('href')] for course in courses],
                    columns=['Title (eng)', 'Link'])

# 初始化翻译器并执行翻译
translator = Translator()
df['Title (hin)'] = df['Title (eng)'].apply(lambda x: translator.translate(x, dest='hi').text)

print(df)
driver.quit()  # 关闭浏览器释放资源

额外注意事项

  • 请求频率限制:Google翻译有请求频次限制,若课程数量较多,建议在翻译时加入延迟避免被封禁:
    df['Title (hin)'] = df['Title (eng)'].apply(lambda x: 
        translator.translate(x, dest='hi').text
        if time.sleep(0.5) is None else None)
    
  • 代理设置:若遇到访问被限制,可给Translator配置代理:
    translator = Translator(proxies={'http': 'http://your-proxy:port', 'https': 'https://your-proxy:port'})
    

内容的提问来源于stack exchange,提问作者teddy107 Van Weit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:43:26