工作中,我们需要将关键词翻译成其他语种,手动通过google翻译,一次只能添加5000字符,因此想着用程序模拟打开Google翻译,不断发送指令完成翻译
1.使用selenium模拟打开Google翻译
from selenium import webdriver
import time
driver = webdriver.Chrome()
kw_text = '我爱你'
driver.get('https://translate.google.cn/#view=home&op=translate&sl=auto&tl=en&text=' + kw_text)
time.sleep(3)
ele = driver.find_element_by_css_selector('span[jsname="W297wb"]')
print(ele.text)
2.循环批量翻译
from selenium import webdriver
import re
import time
import random
with open('en.txt', encoding='utf-8') as f:
lines = f.readlines()
driver = webdriver.Chrome()
# driver.maximize_window()
n = 0
every_time_trans_nums = 100
kw_num = len(lines)
while n < kw_num:
kw_text = ''
keywords = lines[n:n + every_time_trans_nums]
for i in keywords:
kw_text += i.replace(' ', '%20') + '%0A'
try:
# tl可以改为es,en,id,fr等
driver.get('https://translate.google.cn/#view=home&op=translate&sl=auto&tl=vi&text=' + kw_text)
time.sleep(3)
ele = driver.find_element_by_css_selector('span[jsname="W297wb')
print(ele.text)
except Exception as e:
print(e)
time.sleep(5)
else:
with open('vn.txt', 'a', encoding='utf-8') as f:
f.write(ele.text + '\n')
finally:
if kw_num - n < every_time_trans_nums:
every_time_trans_nums = kw_num - n
else:
n += 50
if n % 500 == 0:
print('已翻译完成 [%s]' % n)
time.sleep(random.random())
driver.quit()