今天需要做一个翻译的工具,找到之前写过的有道翻译,已经不能用了,最后看到百度翻译还不错,不过官方版本是Python2,我需要Python3,就自己写了一个:

# coding: utf8
'''
  @Author: LCY
  @Contact: lchuanyong@126.com
  @blog: http://http://blog.csdn.net/lcyong_
  @Date: 2018-01-15
  @Time: 19:19
  说明: appid和secretKey为百度翻译文档中自带的,需要切换为自己的
      python2和python3部分库名称更改对应如下:
      httplib   ---->  http.client
      md5     ---->  hashlib.md5
      urllib.quote ---->  urllib.parse.quote
  官方链接:
      http://api.fanyi.baidu.com/api/trans/product/index
      
'''
 
import http.client
import hashlib
import json
import urllib
import random
 
def baidu_translate(content):
  appid = '20151113000005349'
  secretKey = 'osubCEzlGjzvw8qdQc41'
  httpClient = None
  myurl = '/api/trans/vip/translate'
  q = content
  fromLang = 'zh' # 源语言
  toLang = 'jp'  # 翻译后的语言
  salt = random.randint(32768, 65536)
  sign = appid + q + str(salt) + secretKey
  sign = hashlib.md5(sign.encode()).hexdigest()
  myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(
    q) + '&from=' + fromLang + '&to=' + toLang + '&salt=" + str(
    salt) + "&sign=' + sign
 
  try:
    httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
    httpClient.request('GET', myurl)
    # response是HTTPResponse对象
    response = httpClient.getresponse()
    jsonResponse = response.read().decode("utf-8")# 获得返回的结果,结果为json格式
    js = json.loads(jsonResponse) # 将json格式的结果转换字典结构
    dst = str(js["trans_result"][0]["dst"]) # 取得翻译后的文本结果
    print(dst) # 打印结果
  except Exception as e:
    print(e)
  finally:
    if httpClient:
      httpClient.close()
 
if __name__ == '__main__':
  while True:
    print("请输入要翻译的内容,如果退出输入q")
    content = input()
    if (content == 'q'):
      break
    baidu_translate(content)

官方版本:

#/usr/bin/env python
#coding=utf8
 
import httplib
import md5
import urllib
import random
 
appid = '20151113000005349'
secretKey = 'osubCEzlGjzvw8qdQc41'
 
 
httpClient = None
myurl = '/api/trans/vip/translate'
q = 'apple'
fromLang = 'en'
toLang = 'zh'
salt = random.randint(32768, 65536)
 
sign = appid+q+str(salt)+secretKey
m1 = md5.new()
m1.update(sign)
sign = m1.hexdigest()
myurl = myurl+'?appid='+appid+'&q='+urllib.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt="+str(salt)+"&sign='+sign
 
try:
  httpClient = httplib.HTTPConnection('api.fanyi.baidu.com')
  httpClient.request('GET', myurl)
 
  #response是HTTPResponse对象
  response = httpClient.getresponse()
  print response.read()
except Exception, e:
  print e
finally:
  if httpClient:
    httpClient.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

收藏 打印