自动翻译

Posted on 2018-03-29 22:04  壶壶龟  阅读(262)  评论(0)    收藏  举报

好久没写了,勤奋的时候觉得太忙没空写,懒得时候根本不想写 今天随便写一篇

这几天老师布置的翻译神烦,给自动化了一下 自动读取excel中的每一行,再通过谷歌翻译,转成要求的格式,复制到新的excel中

import re
import urllib.parse, urllib.request
import hashlib
import urllib
import xlrd
import xlwt
from xlutils.copy import copy   
#import pandas as pd
url_google = 'http://translate.google.cn'
reg_text = re.compile(r'(?<=TRANSLATED_TEXT=).*?;')
user_agent = r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ' r'Chrome/44.0.2403.157 Safari/537.36'

def translateGoogle(text):
    t='en_US'
    f='zh-cn'
    values = {'hl': 'zh-cn', 'ie': 'utf-8', 'text': text, 'langpair': '%s|%s' % (f, t)}
    value = urllib.parse.urlencode(values)
    req = urllib.request.Request(url_google + '?' + value)
    req.add_header('User-Agent', user_agent)
    response = urllib.request.urlopen(req)
    content = response.read().decode('utf-8')
    data = reg_text.search(content)
    result = data.group(0).strip(';').strip('\'')
    return result

def read(path):
    workbook = xlrd.open_workbook(path)
    sheet_name = workbook.sheet_names()[0]
    sheet = workbook.sheet_by_index(0)
    new_book = copy(workbook)
    sheet2 = new_book.get_sheet(0)
    n =sheet.nrows
    for i in range(150,n):
        s = sheet.row_values(i)
        
        a =s[0] 
        #print(a)
        s1 =translateGoogle(a)
        #print(s1)
        sheet2.write(i, 0, a+' '+ s1)
        new_book.save('/Users/Desktop/abc.xls')
    print('done')
        
path = '/Users/Desktop/mima.xlsx'

read(path)