用谷歌API搭建自动翻译小脚本

idea

最近刚刚入学,老师老师让我做一些翻译方面的工作,之前是翻译一些单词比较长的句子,只能安心好好翻译,这次,直接给我一个excel文件,如下图:,大概有1000条这种单个的内容,还好多人分工就可以每人330条,不过也挺多的。但是观察到该excel中的数据还是很简单的,谷歌翻译应该可以很好的处理,要是要一个一个黏贴复制可太麻烦的。
用谷歌API搭建自动翻译小脚本_第1张图片

解决办法

采用谷歌翻译的python包直接用代码来翻译,然后再储存在excel中,完美!

#coding=utf-8
'''
time:2019-8-4
brief:将excel的选定的单元格的中文翻译为英文,再保存到excel中
应用于导师交你翻译很多的短语句子,但是实际上不复杂的句子
'''
from googletrans import Translator
import pandas as pd
import xlrd
data=xlrd.open_workbook('test.xlsx')
table = data.sheet_by_index(0) #通过索引顺序获取,0表示第一张表rst = []
dataone=table.col_values(0,160,332)
#print(dataone)
translator = Translator(service_urls=['translate.google.cn'])
rst = []
for i,tanssen in enumerate(dataone):
    tmp = translator.translate(tanssen, src='zh-cn', dest='en').text
    rst.append(tmp+'\r')
    print(i,tanssen,tmp)
df=pd.DataFrame(rst,columns=['test'])
df.to_excel('test1.xlsx',index=False)

'''
with open('test.xlsx') as f:
	for i, line in enumerate(f) :
		tmp = translator.translate(line, src='zh-cn', dest='en').text
		rst.append(tmp + '\r')
		print(i, tmp)
with open('test.xlsx', 'w') as f:
	f.writelines(rst)
'''

最终效果:
用谷歌API搭建自动翻译小脚本_第2张图片

提示

有一点很重要的需要讲的是:不能够在短时间内测试很多次,这会导致g谷歌把你的ip给ban了,这有点类似爬虫,可能同一IP短时间快速访问导致的压力过大,被GG了.会出现一种叫json的错误。如下:

File “/usr/lib/python3.5/json/decoder.py”, line 357, in raw_decode
raise JSONDecodeError(“Expecting value”, s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

emmm是的,我也是出现了的,要处理这个问题,就需要修改自己的VPN,无论是挂学校VPN还是VPN,都是可以解决的。我就是通过挂学校VPN解决的,我爱学校!

你可能感兴趣的:(python-trick)