对于需要大量翻译的数据,人工翻译太慢,此时需要使用软件进行批量翻译。

1.使用360的翻译(https://fanyi.so.com/index/search)

def fanyi_word_cn(string):url="https://fanyi.so.com/index/search"#db_path = './db/tasks.db'Form_Data= {}#这里输入要翻译的英文Form_Data['query']= stringForm_Data['eng']= '1'#用urlencode把字典变成字符串,#服务器不接受字典,只接受字符串和二进制data= parse.urlencode(Form_Data).encode('utf-8')#改成服务器可识别的数据后,请求,获取回应数据response= request.urlopen(url, data)html= response.read().decode("utf-8")#解码方式#java中的对象(集合)和数组(元素为集合),loads可转Python字典result= json.loads(html)#字典调取键名data下的键名fanyi,获取其值translate_result= result["data"]["fanyi"]#print(translate_result)return translate_result

2.使用Google自带的API来翻译

注意,需要安装API模块即可。

pip install translator

#google api, per 1000 words everyday
def translate_cn_api(content):translator= Translator(to_lang="zh")translation = translator.translate(content)return translation

3.使用Google翻译来做,是由于Google提供的API有字节限制,每天只能翻译1000字。

备注:环境准备

3.1 java环境

3.2 安装execjs模块

pip install PyExecJS

3.3 两个实现模块

HandleJs.py

#coding=utf-8
import execjsclass Py4Js():  def __init__(self):  self.ctx = execjs.compile(""" function TL(a) { var k = ""; var b = 406644; var b1 = 3293161072; var jd = "."; var $b = "+-a^+6"; var Zb = "+-3^+b+-f"; for (var e = [], f = 0, g = 0; g < a.length; g++) { var m = a.charCodeAt(g); 128 > m ? e[f++] = m : (2048 > m ? e[f++] = m >> 6 | 192 : (55296 == (m & 64512) && g + 1 < a.length && 56320 == (a.charCodeAt(g + 1) & 64512) ? (m = 65536 + ((m & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = m >> 18 | 240, e[f++] = m >> 12 & 63 | 128) : e[f++] = m >> 12 | 224, e[f++] = m >> 6 & 63 | 128), e[f++] = m & 63 | 128) } a = b; for (f = 0; f < e.length; f++) a += e[f], a = RL(a, $b); a = RL(a, Zb); a ^= b1 || 0; 0 > a && (a = (a & 2147483647) + 2147483648); a %= 1E6; return a.toString() + jd + (a ^ b) }; function RL(a, b) { var t = "a"; var Yb = "+"; for (var c = 0; c < b.length - 2; c += 3) { var d = b.charAt(c + 2), d = d >= t ? d.charCodeAt(0) - 87 : Number(d), d = b.charAt(c + 1) == Yb ? a >>> d: a << d; a = b.charAt(c) == Yb ? a + d & 4294967295 : a ^ d } return a } """)  def getTk(self,text):  return self.ctx.call("TL",text)

main.py

#coding=utf-8
#import urllib.request
import urllib2
from HandleJs import Py4Js
from translate import Translator
import requests# Example: find_last('aaaa', 'a') returns 3
# Make sure your procedure has a return statement.
def find_last(string,str):last_position=-1while True:position=string.find(str,last_position+1)if position==-1:return last_positionlast_position=positiondef open_url(url):    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}      req = urllib2.Request(url = url,headers=headers)    response = urllib2.urlopen(req)    data = response.read().decode('utf-8')    return data    def translate_core(content,tk, language):    if len(content) > 4891:    print("too long byte >4891")returncontent = urllib2.quote(content)    if language == 'de':url = "http://translate.google.cn/translate_a/single?client=t"+ "&sl=de&tl=zh-CN&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca"+"&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&clearbtn=1&otf=1&pc=1"+"&srcrom=0&ssel=0&tsel=0&kc=2&tk=%s&q=%s"%(tk,content)    else:url = "http://translate.google.cn/translate_a/single?client=t"+ "&sl=en&tl=zh-CN&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca"+"&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&clearbtn=1&otf=1&pc=1"+"&srcrom=0&ssel=0&tsel=0&kc=2&tk=%s&q=%s"%(tk,content)    #result为json格式result = open_url(url)    #print('results:' + result)if len(content) < 10:end = result.find("\",")  if end > 4:  return result[4:end]else:result_all = ''if language == 'de':result_all = result.split(',null,"de",null,null,')[0].replace('[[', '').replace(']]', ']')[1:]else:result_all = result.split(',null,"en",null,null,')[0].replace('[[', '').replace(']]', ']')[1:]#print('result_all:' + result_all)output_cn = ''#解析中文字段并拼接list = result_all.split('],[')for i in range(len(list)-1):end = list[i].find("\",")tmp_buf = list[i][1:end]output_cn = output_cn + tmp_bufreturn output_cndef translate_normal(content, language):    js = Py4Js()    tk = js.getTk(content)#print('english:' + content)cn_buf = translate_core(content,tk, language)#print('Chinese:' + cn_buf)return cn_bufdef translate_cn(content, language):LEN_LIMIT = 4891all_len = len(content)print('en:' + content)if all_len > LEN_LIMIT:content_cn = ''while True:content_limit = content[0:LEN_LIMIT]limit_end = find_last(content_limit, '.') + 1#print('limit_end:' + str(limit_end))if limit_end == 0:limit_end = find_last(content_limit, ' ') + 1if limit_end == 0:limit_end = LEN_LIMITcontent_en = content[0:limit_end]leave_len = all_len - limit_endif content_en == '':break;#print('content_en:' + content_en)content_cn = content_cn + translate_normal(content_en, language);content = content[limit_end:]return content_cnelse:return translate_normal(content, language)#google api, per 1000 words everyday
def translate_cn_api(content):translator= Translator(to_lang="zh")translation = translator.translate(content)return translationif __name__ == "__main__":  content = """Beautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Namespaces are one honking great idea -- let's do more of those!"""#content = """    IT-Grundschutz M5.131: Absicherung von IP-Protokollen unter Windows Server 2003."""#content = 'High'content = """Beautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Namespaces are one honking great idea -- let's do more of those!"""language = 'en'test = translate_cn(content.replace('\n', ''), language)print('ok:' + test)#content = 'Checks version'

此处实现了德语翻译成中文和英文翻译成中文。

python实现在线翻译相关推荐

  1. python代码翻译-python实现在线翻译

    本文实例为大家分享了python实现在线翻译的具体代码,供大家参考,具体内容如下 具体效果请看图 代码: import urllib.request import urllib.parse impor ...

  2. python发音翻译-python实现在线翻译

    本文实例为大家分享了python实现在线翻译的具体代码,供大家参考,具体内容如下 具体效果请看图 代码: import urllib.request import urllib.parse impor ...

  3. python翻译-python实现在线翻译

    本文实例为大家分享了python实现在线翻译的具体代码,供大家参考,具体内容如下 具体效果请看图 代码: import urllib.request import urllib.parse impor ...

  4. python在线翻译代码_Python 20行简单实现有道在线翻译的详解

    简介 主要是尝试简单的使用pyhton的爬虫功能,于是使用有道进行尝试,并没有进行深入的诸如相关api的调用. 以下是需要的POST数据 代码 以下是相关部分的代码: import urllib.re ...

  5. python在线翻译小程序_Python爬虫学习之翻译小程序

    本次博客分享的内容为基于有道在线翻译实现一个实时翻译小程序,本次任务是参考小甲鱼的书<零基础入门学习Python>完成的,书中代码对于当前的有道词典并不适用,使用后无法实现翻译功能,在网上 ...

  6. 基于python爬取有道翻译,并在线翻译

    基于python爬取有道翻译,并在线翻译 由于我也是爬虫新学者,有什么做的不对的请多加包涵 我们需要使用的库如下 from urllib import request import urllib im ...

  7. python读音有道-Python 20行简单实现有道在线翻译的详解

    简介 主要是尝试简单的使用pyhton的爬虫功能,于是使用有道进行尝试,并没有进行深入的诸如相关api的调用. 以下是需要的POST数据 代码 以下是相关部分的代码: import urllib.re ...

  8. Python爬虫教程-16-破解js加密实例(有道在线翻译)

    python爬虫教程-16-破解js加密实例(有道在线翻译) 在爬虫爬取网站的时候,经常遇到一些反爬虫技术,比如: 加cookie,身份验证UserAgent 图形验证,还有很难破解的滑动验证 js签 ...

  9. 使用python创建一个windows桌面在线翻译小程序

    1.首先需要制造打包的gui界面 这里小编使用的是 wxFormBuilder 下载地址:链接:https://pan.baidu.com/s/1DOe7TA6ap07ZsjcH4qzBIQ 密码:2 ...

最新文章

  1. JetBrains大力推广Kotlin为哪般?
  2. windows-台式机添加硬盘后如何加载、格式化新的分区
  3. oracle degree 造成阻塞_数据库锁/阻塞分析的一种常用方法
  4. 二倍图三倍图什么意思_搞笑GIF图:搞笑GIF图:平安夜为什么见不到“圣诞老人”...
  5. 2019-04-28 Mybatis generator逆向工程生成的Example代码分析
  6. 使用vue 刷新页面后state数据被清空的问题(刷新总是跳转到登陆页面)
  7. Python PIP Mysql-python 报错 ERROR: Command errored out with exit status 1: python setup.py egg_info C
  8. 怎么用Excel来批量生成SQL语句
  9. VSTO word操作
  10. 3656. 心与心的距离
  11. LIN、K、CAN、CAN-FD、FlexRay、Ethernet 、MOST、VAN常见汽车总线简介
  12. 根据起始时间和流逝的时间计算出终止时间(C语言)
  13. 如何解决pycharm下载库总是失败?
  14. 【实战讲解】数据血缘落地实施
  15. 鸿蒙系统怎么安装网易云音乐,网易云音乐鸿蒙版 - 魔法系统之家下载
  16. python音频特征提取_Python干货:如何使用Python对音频进行特征提取?
  17. java开源验证框架OVAL帮助文档
  18. JS实现复制粘贴的方式
  19. 2022年无形资产估值工具和方法研究报告
  20. selenium+phantomjs 爬虫 获取中国移动,电信,联通通话记录

热门文章

  1. React hooks - Ref 使用实例
  2. SVN 已提交版本回退
  3. word交叉引用的理解
  4. OSPF特殊区域(stub、stub no-summary、nssa)
  5. 消费者洞察:数据影响消费,消费营造数据
  6. GDP: Network Pruning
  7. javascript 优秀模块是这样炼成的
  8. 微型计算机的i3或i5一般指的是,英特尔i3、i5、i7分别相当于骁龙哪个层次的处理器?...
  9. javaScript教程笔记(一)JS简史
  10. IDEA太强悍了!java导出excel合并单元格边框设置