Python通过调用有道翻译api实现翻译功能示例
作者:wanlifeipeng 发布时间:2023-12-11 09:44:04
标签:Python,有道翻译,api
本文实例讲述了Python通过调用有道翻译api实现翻译功能。分享给大家供大家参考,具体如下:
通过调用有道翻译的api,实现中译英、其他语言译中文
Python代码:
# 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)
关于有道翻译api的详细说明可参考其官网:http://ai.youdao.com/docs/api.html
希望本文所述对大家Python程序设计有所帮助。
来源:http://www.cnblogs.com/hupeng1234/p/7073682.html
0
投稿
猜你喜欢
- 定时任务:1、 线程睡眠函数 sleep() ——粗暴!一直占有 CPU 资源,导致后续操作无法执行2、 threading.Timer(1
- 导读:最近数据库经常出现会话阻塞的报警,过一会又会自动消失,昨天晚上恰好发生了一次,于是赶紧进行了查看,不看不知道,一看吓一跳,发现是由da
- 问题背景调试脚本时,遇到一个问题:ImportError: cannot import name 'A' from '
- 前言首先来看一段代码x_list = [i for i in range(30)]y_list = [i for i in range(10
- OS模块import os1.返回操作系统类型 :posix 是linux操作系统,nt 是windows操作系统print(os.name
- 有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用
- 大家应该经常看到在文本框里提示文字,然后一点就没了。通常做法都是默认给个value,通过js来处理。详细实现都不介绍了,大家都会。现在来看一
- 导语因为疫情无奈只能在家宅了好多天,随手玩了下自己以前做的一些小游戏,说真的,有几个游戏做的是真的劣质,譬如 flappybird 真的让我
- 当下基本所有的目标检测类的任务都会选择基于深度学习的方式,诸如:YOLO、SSD、RCNN等等,这一领域不乏有很多出色的模型,而且还在持续地
- 树型结构在我们应用程序中还是很常见的,比如文件目录,BBS,权限设置,部门设置等。这些数据信息都采用层次型结构,而在我们现在的关系型数据库中
- str='python String function'生成字符串变量str='python String func
- 本文实例讲述了Python3实现对列表按元组指定列进行排序的方法。分享给大家供大家参考,具体如下:Python版本: python3.+ 运
- 本文实例讲述了Python实现的简单计算器功能。分享给大家供大家参考,具体如下:使用python编写一款简易的计算器计算器效果图首先搭建计算
- python实战,用户答题分享给大家。主要包含内容,文件的读取,更改,保存。不同文件夹引入模块。输入,输出操作。随机获取数据操作随机生成算数
- import osimport codecsfilenames=os.listdir(os.getcwd())out=file("
- 见下面的代码:<html><head><title>精彩春风之月份查询</title><
- 装饰器模式(Decorator Pattern)是什么装饰器模式是一种结构型模式,它允许你在运行时为一个对象动态地添加新的行为,而不影响其原
- 很多时候,由于程序设计需要,要求在asp的include包含文件里调用动态的文件。如<!--#include file=&q
- 引言周末我和小明又开始了疯狂的考证学习,昨晚通过合法的手段获取了一套学习资料,却遇到了一个问题:一套完整的资料,被机构拆分成了162个wor
- 前段时间,在pycharm里配置了远程的Python解释器,然后在使用过程中,发现pycharm原来是可以使用Jupyter的文件,而且还可