今天需要做一个翻译的工具,找到之前写过的有道翻译,已经不能用了,最后看到百度翻译还不错,不过官方版本是Python2,我需要Python3,就自己写了一个:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# 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)
|
官方版本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#/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()
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/LCYong_/article/details/79068636