1、首先查看自己浏览器的版本,在设置 > 关于Chrome可以看到我的版本是97.0.4692.71
然后去: http://chromedriver.storage.googleapis.com/index.html.下载对应自己谷歌版本的驱动,比如我是下载97.0.4692.71版本
下载后解压出来,将chromedriver.exe放到谷歌浏览器安装目录。比如:
需要在这两个代码中选择一条运行,另一条注释。
### 自己手动指定驱动位置
browser = webdriver.Chrome(r'C:\Program Files\Google\Chrome\Application\chromedriver.exe')
### 添加环境变量,自动选择驱动
# browser = webdriver.Chrome(chrome_options=chrome_options)
区别在于:
第一条要自己去修改驱动的路径,并且在代码运行过程中可以看到浏览器工作状态,查看翻译过程。
第二条需要添加环境变量,并且电脑需要管理员权限,在代码运行过程中会隐藏浏览器工作界面。
翻译方式是直接由浏览器网址决定,如我的这个网址的方式是自动识别语种,翻译为中文
base_url = 'https://translate.google.cn/?sl=auto&tl=zh-CN&op=translate'
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from retry import retry
import time
chrome_options = Options()
# 可以选择是否需要隐藏浏览器界面
chrome_options.add_argument('--headless')
###人为选择,直接指定驱动位置,可以看到浏览器工作状态,不需要添加环境变量
browser = webdriver.Chrome(r'C:\Program Files\Google\Chrome\Application\chromedriver.exe')
### 人为选择,隐藏浏览器工作状态,不过需要添加环境变量
# browser = webdriver.Chrome(chrome_options=chrome_options)
base_url = 'https://translate.google.cn/?sl=auto&tl=zh-CN&op=translate'
browser.get(base_url)
@retry(tries=3, delay=1)
def translate(input):
browser.find_element_by_css_selector("textarea[aria-label='原文']").clear() #清空输入框内的提示信息,如果直接输入内容,可能会与输入框的默认提示信息拼接,从而造成输入信息的错误,这是clear()将会变得非常有用
browser.find_element_by_css_selector("textarea[aria-label='原文']").send_keys(input) #用于在一个输入框内输入内容
time.sleep(0.5)
result = browser.find_element_by_xpath('//*[@id="yDmH0d"]/c-wiz/div/div[2]/c-wiz/div[2]/c-wiz/div[1]/div[2]/div[3]/c-wiz[2]/div[6]/div/div[1]/span[1]').text
return result
if __name__ == '__main__':
count = 0
for i in range(100):
print(str(count) + translate('It is time to sleep\nwhat are you doing now'))
print(str(count) + translate('Let is test again\nyes i am'))
count+=1
browser.quit()
借助谷歌浏览器翻译的速度不是很快,速度受限于网络速度,代码的运行方式也很简单,只是填入文本后延时一段时间,然后再去获取翻译结果。如果延时时间不够长的话获取到的结果可能是上次的翻译结果。