如何通过谷歌翻译翻译图像中的文本而不提取它? Python 3.X

问题描述 投票:0回答:3

我最近尝试开发一个程序来翻译图像中的文本。这无需提取文本,因为该程序适用于漫画!

我也尝试过使用 Yandex 等不同的网站,但最终选择了 Google Trasnlate,因为它是唯一提供不错结果的服务。而且我不太喜欢 API 选项,因为它不是免费的,而且可能没有图像功能。

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.implicitly_wait(15)
driver.get("https://translate.google.com/?sl=auto&tl=en&op=images")
button = driver.find_element('xpath', "//*[@id='yDmH0d']/c-wiz/div/div/div/div[2]/div[1]/div[3]/div[1]/div[1]/form[2]/div/div/button/span")
# Button is for accepting cookies
button.click()
driver.refresh()
driver.find_element( "id", "ucj-35").send_keys("/Users/marcojohanssontornblom/PycharmProjects/IV/Comic-Translater/1.jpg")
sleep(10)

但是在尝试这样做的过程中我遇到了一个大问题;每次我运行代码时,Google Transnlate 都无法识别文本。使用手动浏览器时不会出现这种情况。我对此表示怀疑,因为我正在使用 Selelnium 来自动化浏览器,但当然也可能是其他原因。

如何解决这个问题并翻译图像?

python selenium-webdriver web-scraping selenium-chromedriver google-translate
3个回答
0
投票

对我有用的解决方案是将 selenium 连接到我的合法 chrome 浏览器,并且它有效。 (Selenium 可能被 Google 检测到)

为此,您必须使用调试端口启动 chrome。在 Linux 中,您可以通过执行

google-chrome --remote-debugging-port=3141
来做到这一点,其中
3141
是端口号,您可以更改它(确保它高于 1000)。

这是修改后的代码:

from selenium import webdriver
from time import sleep

options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", "127.0.0.1:3141")
driver = webdriver.Chrome(options)
driver.get("https://translate.google.com/?sl=auto&tl=en&op=images")

try:
    button = driver.find_element('xpath', "//*[@id='yDmH0d']/c-wiz/div/div/div/div[2]/div[1]/div[3]/div[1]/div[1]/form[2]/div/div/button/span")
# Button is for accepting cookies
    button.click()
    driver.refresh()
    sleep(1)
except Exception:
    pass
driver.find_element( "id", "ucj-35").send_keys("path_to_your_image")

我只是稍微修改了代码,这样如果找不到 cookies 按钮,就不会引发错误。

顺便说一下,如果你在 Windows 上,你可能想知道如何使用调试端口打开 google chrome,我认为你不能单独使用 CMD 来做到这一点。如果您根本无法做到这一点,或者解决方案不起作用,也许可以尝试使用 Selenium Stealth


0
投票

也许你可以实现人工智能来读取图像,然后将其转换为文本,然后通过内置翻译器运行它,然后给出结果,但这只是我的解决方案。


0
投票

更新该主题,由于某种原因,我收到相同的错误 Telefondemonen_se

© www.soinside.com 2019 - 2024. All rights reserved.