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

如何用Python 3.X实现谷歌图片翻译(免提取)?解决Selenium识别失败问题

解决谷歌翻译图片上传自动化无法识别文字的问题

核心原因分析

谷歌翻译会检测Selenium的自动化特征(比如ChromeDriver的标识、特定浏览器配置),同时你的代码存在动态元素定位失效和不必要页面刷新的问题,导致上传流程异常。

具体解决方案

1. 隐藏Selenium自动化特征

配置ChromeOptions,让浏览器更接近真实用户环境:

  • 禁用自动化扩展提示
  • 移除ChromeDriver的标识
  • 启用常规浏览器参数

2. 使用稳定的元素定位方式

避免依赖动态生成的ID(如ucj-35)和过长XPath,改用基于元素功能的定位逻辑:

  • 接受Cookie按钮用文本或通用属性匹配
  • 图片上传输入框用input[type='file']的CSS选择器(文件上传框通常是静态的)

3. 优化上传流程

移除不必要的页面刷新,接受Cookie后直接执行上传操作,避免页面状态重置。

4. 用显式等待替代固定Sleep

显式等待能精准等待元素加载完成,比固定时长的sleep更可靠,减少流程不稳定因素。

修改后的代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import random
import time

# 配置Chrome选项,隐藏自动化特征
chrome_options = Options()
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
chrome_options.add_argument("--start-maximized")  # 最大化窗口模拟真实操作

driver = webdriver.Chrome(options=chrome_options)
wait = WebDriverWait(driver, 20)

# 打开谷歌图片翻译页面
driver.get("https://translate.google.com/?sl=auto&tl=en&op=images")

# 等待并点击接受Cookie按钮
try:
    accept_cookie_btn = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[contains(text(), 'Accept all')]")))
    accept_cookie_btn.click()
    time.sleep(random.uniform(1, 2))  # 模拟用户操作间隔
except:
    # 无Cookie提示则跳过
    pass

# 等待文件上传输入框加载并上传图片
upload_input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "input[type='file']")))
upload_input.send_keys("/Users/marcojohanssontornblom/PycharmProjects/IV/Comic-Translater/1.jpg")

# 等待翻译结果加载完成
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "div[aria-label='Translation result']")))

# 可选:获取翻译结果
# translation_text = driver.find_element(By.CSS_SELECTOR, "div[aria-label='Translation result']").text
# print(translation_text)

# 关闭浏览器(按需选择)
# driver.quit()

额外注意事项

  • 若仍被检测,可增加随机操作间隔(如time.sleep(random.uniform(1,3)))模拟真实用户行为
  • 确保Chrome浏览器与ChromeDriver版本严格匹配,版本不兼容会引发异常
  • 漫画图片的清晰度、文字对比度会影响识别效果,需保证图片质量与手动识别时一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:32:44