如何免费使用谷歌翻译大量的多国语言字符串?
虽然Google Cloud 提供谷歌翻译API价值$300的免费试用机会,但是需要填写复杂的个人信息包括银行卡号,并且当$300用完之后需要付费继续使用API,不是很实用。我们可以用Python和Selenium来模拟浏览器请求谷歌翻译,获取并且记录谷歌翻译返回的结果,这个方法是永久免费的。
谷歌翻译的官网地址是"https://translate.google.com"(需要使用代理打开)。分析其翻译请求的URL,发现是"https://translate.google.com/?sl=ja&tl=en&text="。其中"sl="后面跟的是源语言(如ja表示日语),"tl="后面跟的是目标语言(如en表示英语),"text="后面跟的就是需要翻译的字符串。

首先把需要翻译的语言字符串定义在列表里,并且根据需要翻译源语言和目标语言定义谷歌翻译的请求URL:
TEXT_LIST = [ "天国へのカウントダウン", "ベイカー街の亡霊", "ハロウィーンの花嫁", "時計じかけの摩天楼"]GOOGLE_TRANS_URL_PREFIX = "https://translate.google.com/?sl=ja&tl=en&text="然后创建webdriver发出字符串翻译请求:
browser = webdriver.Chrome() ## 需要导入selenium库。for txt in TEXT_LIST: trans_url = GOOGLE_TRANS_URL_PREFIX + urllib.parse.quote(txt) ## 需要导入urllib库,把UTF-8格式的多国语言字符串编码成URL格式。 browser.get(trans_url) time.sleep(slp_time) ## 需要导入time库。 elem = browser.find_element_by_xpath("//*[@id='yDmH0d']/c-wiz/div/div[2]/c-wiz/div[2]/c-wzi/div[1]/div[2]/div[3]/c-wiz[2]/div/div[8]/div/div[1]/span[1]/span/span").text ## 通过XPath定位到返回网页中的翻译结果字符串元素。 print("Translated: %s" % (elem)) ## 输出翻译结果。browser.close()最后使用浏览器的F12(开发者工具),定位到页面中的翻译结果字符串,右键获取其XPath。Python脚本通过XPath定位获得翻译结果并打印出来。(完)