python调用有道翻译api实现翻译

通过调用有道翻译的api,实现中译英、其他语言译中文

代码:

# coding=utf-8
import urllib
import urllib2
import json
import time
import hashlib

class YouDaoFanyi:
    def __init__(self, appKey, appSecret):
        self.url = ‘https://openapi.youdao.com/api/‘
        self.headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36",
        }
        self.appKey = appKey  # 应用id
        self.appSecret = appSecret  # 应用密钥
        self.langFrom = ‘auto‘   # 翻译前文字语言,auto为自动检查
        self.langTo = ‘auto‘     # 翻译后文字语言,auto为自动检查

    def getUrlEncodedData(self, queryText):
        ‘‘‘
        将数据url编码
        :param queryText: 待翻译的文字
        :return: 返回url编码过的数据
        ‘‘‘
        salt = str(int(round(time.time() * 1000)))  # 产生随机数 ,其实固定值也可以,不如"2"
        sign_str = self.appKey + queryText + salt + self.appSecret
        sign = hashlib.md5(sign_str).hexdigest()
        payload = {
            ‘q‘: queryText,
            ‘from‘: self.langFrom,
            ‘to‘: self.langTo,
            ‘appKey‘: self.appKey,
            ‘salt‘: salt,
            ‘sign‘: sign
        }

        # 注意是get请求,不是请求
        data = urllib.urlencode(payload)
        return data

    def parseHtml(self, html):
        ‘‘‘
        解析页面,输出翻译结果
        :param html: 翻译返回的页面内容
        :return: None
        ‘‘‘
        data = json.loads(html)
        print ‘-‘ * 10
        translationResult = data[‘translation‘]
        if isinstance(translationResult, list):
            translationResult = translationResult[0]
        print translationResult
        if "basic" in data:
            youdaoResult = "\n".join(data[‘basic‘][‘explains‘])
            print ‘有道词典结果‘
            print youdaoResult
        print ‘-‘ * 10

    def translate(self, queryText):
        data = self.getUrlEncodedData(queryText)  # 获取url编码过的数据
        target_url = self.url + ‘?‘ + data    # 构造目标url
        request = urllib2.Request(target_url, headers=self.headers)  # 构造请求
        response = urllib2.urlopen(request)  # 发送请求
        self.parseHtml(response.read())    # 解析,显示翻译结果

if __name__ == "__main__":
    appKey = ‘应用id‘  # 应用id
    appSecret = ‘应用密钥‘  # 应用密钥
    fanyi = YouDaoFanyi(appKey, appSecret)
    while True:
        queryText = raw_input("请输入你好翻译的文字[Q|quit退出]: ").strip()
        if queryText in [‘Q‘, ‘quit‘]:
            break
        fanyi.translate(queryText)

参考文档: http://ai.youdao.com/docs/api.s

时间: 2024-10-07 08:00:32

python调用有道翻译api实现翻译的相关文章

简单实现Python调用有道API接口(最新的)

1 # ''' 2 # Created on 2018-5-26 3 # 4 # @author: yaoshuangqi 5 # ''' 6 import urllib.request 7 import urllib.parse 8 import json 9 10 class YoudaoFanyi(): 11 """ 12 有道词典API 13 """ 14 VERSION = 1.1 15 URL = 'http://fanyi.youd

ubuntu下python脚本调用有道词典API实现命令行查词

#!/usr/bin/env python #coding=utf-8 '''   python使用有道词典的API来实现命令行查词 ''' import urllib2 import json import sys  reload(sys) sys.setdefaultencoding('utf-8') key = '1096888977' keyfrom = 'bloketest' doctype = 'json' u = 'http://fanyi.youdao.com/openapi.d

关于网站调用在线翻译api实现翻译功能

在做一些网站的时候偶尔会遇到需要中英文翻译的部分,也许是提供用户在线翻译的功能,也可能是把用户输入的一整段文字进行翻译.小龙最近就遇到这么一个事儿,对接中外两方用户的沟通,为了对语言不那么顺畅的用户提供一点点帮助,在网站里嵌入了自动翻译的功能,就简化了用户复制黏贴,再打开百度翻译的步骤了. 小龙用的是有道提供的api,普通用户就可以免费使用的.有道提供了网页模块的调用法和数据接口型的,网页模块的会比较简单一些,在他们官网上把写好的代码复制进html就好,这边简单展开以下数据接口型的调用. 首先,

php处理json码 实例:PHP实现百度翻译API调用处理

今天给一个小程序写后台,通过调用百度翻译API实现翻译功能. 调用百度API的url为'http://openapi.baidu.com/public/2.0/translate/dict/simple?client_id=你的KEY&q=要查的汉语&from=zh&to=en'; 申请步骤详见点击打开链接 以上是前期准备工作 ==============================================================================

如何调用有道翻译API(Java,HTTP)

申请Key 首先如图进入有道翻译,在下方点击"有道翻译API". 紧接着来调用数据接口,按提示完成下列输入框. 如下图所示,已经申请成功了. 下图是官方给的示例,可以有xml和json.jsonp等三种数据格式. 代码(Java) public class TestPost { public static void main(String[] args) { new ReadByPost().start(); } } class ReadByPost extends Thread{ @

Android应用记录一:有道翻译API调用

因为某些原因,我需要记单词,而且讨厌广告,所以就想着自己写个能够查自己不认识的单词并且以后可以随时查看的APP. 首先我需要调用一个翻译API,中文翻译比较好用的API有有道翻译API,百度翻译API等,因为先期用过百度地图API,觉得很好用,所以我先查阅了百度翻译API 觉得还不错,因为我写的APP是给自己用的,所以这肯定够用,然后我就申请了一个API接口,当我看了文档之后,百度为了安全的原因,在现版本的接口中加入了签名,通过一定的输入序列形成MD5序列,而这个感觉有点麻烦,虽然我后来试了下,

【Python】Python的urllib、urllib2模块调用“百度翻译”API进行批量自动翻译

1.问题描述 在文本数据处理时,经常回出现文本中各种语言的混杂情况,包括:英文.日语.俄语.法语等,需要将不同语种的语言批量翻译成中文进行处理.可以通过Python直接调用百度提供的翻译API进行批量的翻译. 百度翻译API详细文档见:百度翻译API文档 2.问题解决 开发环境:Linux 将文本中的中文和非中文进行分离,对非中文的部分进行翻译. Python的代码如下:translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys

Python 调用百度翻译API

由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu api 整了一下,和大家分享. 1.百度翻译api 由于百度翻译api需要用到API key,所以,得注册百度开发者账号,然后创建开发者服务工程,得到的授权API key,具体操作可查看官方文档,请点 百度翻译api 2.代码实现  基本思路是:先将用户反馈抓下来,然后再处理html标签,再调用百度

【Python】Python利用有道翻译开发API应用示例

Python源码是关于Python利用有道翻译开发API应用示例.这是一个很有意思又简单的API应用练习题,方法中用到了有道词典开放API应用,合成的类似于命令行词典应用Python小程序.功能简单,但效果却很好. 这里要注意的是:有道API的请求频率限制,限制频率为每小时1000次,如果超过限制会被封禁. 提示:如果想一直用这个可以自己申请一个KEY,申请的过程非常简单的,只要替换原有的KEY_FROM和KEY就可以了. Python利用有道翻译开发API应用示例,源码如下: #!/usr/b