百度翻译api初使用(很久没写python了,写几行玩玩)
调用free api做做简易的翻译
这个是百度翻译api文档
http://api.fanyi.baidu.com/api/trans/product/apidoc
照着百度api给的文档向web服务器发送GET/POST请求,得到需要的翻译json格式,再进行解析即可。
但是貌似只能单词翻译,而且还会出现无法翻译“me”或者“he”的bug,果然百度翻译靠不住
下面上源码,一开始可以在官网上下载demo看看:
配置环境:python 3.x 即可
en_to_zh.py
#!/usr/bin/env python3
#coding=utf8
import http.client
import hashlib
import urllib
import urllib.request
import random
import re def chinese_handle():
#连接百度翻译web服务器
httpclient = http.client.HTTPConnection('api.fanyi.baidu.com')
#要提交的请求
myurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
#输入要查询的单词
'''
array = []
user_input = input('please enter needed translate word:')
while user_input != '0':
array.append(user_input)
user_input = input('please enter needed translate word:')
str2 = ""
for c in array:
str2 = str2 + c +'\n';
query = str2
'''
query = input('please enter the word:')
#输入语言
fromlang = 'en'
#输出语言
tolang = 'zh'
#申请的百度appid
appid = ''
#申请的密钥
secretKey = 'osubCEzlGjzvw8qdQc41'
#随机分配一个数
salt = random.randint(32768,65536)
#拼接得到字符串
str1 = appid+query+str(salt)+secretKey
str1 = str1.encode('utf-8')
#对字符串str1进行md5加密
m = hashlib.md5()
m.update(str1)
#生成签名sign
sign = m.hexdigest()
#拼接成完整请求
myurl = myurl+'?appid='+appid+'&q='+urllib.request.quote(query)+'&from='+fromlang+'&to='+tolang+'&salt='+str(salt)+'&sign='+sign
try:
#发送请求
httpclient.request('GET',myurl)
response = httpclient.getresponse()
content = response.read()
#编码为utf-8可以解字节操作,将bytes转化为str
content = content.decode('utf-8')
#提取其中的结果
mstr = r'\\.....\\.....'
mobj = re.search(mstr,content)
#先编码为gbk再解码unicode即可显示汉字
obj = mobj.group().encode('gbk')
obj = obj.decode('unicode-escape')
print('翻译结果:',obj)
except Exception:
print('error...')
finally:
if httpclient:
httpclient.close() if __name__ == '__main__':
while 1:
chinese_handle()
下面是运行结果:
出现的bug:
百度翻译api初使用(很久没写python了,写几行玩玩)的更多相关文章
- 原生js简单调用百度翻译API实现的翻译工具
先来个在线demo: js翻译工具 或者百度搜索js简单调用百度翻译API工具(不过有个小小的界面显示bug,我想细心的人应该会发现) 或者直接前往该网址:js翻译工具 或者前往我的github:gi ...
- 基于百度翻译API开发属于自己的翻译工具
你是否每天使用着网页翻译工具?你是否遇到过这种情况,上网过程中遇到一个很长的单词但是又不能复制,要开两个浏览器,一个打开百度翻译,照着另一个网页输入单词?你安装了各种翻译软件后,又删除,只因忍受不了那 ...
- Python 调用百度翻译API
由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...
- WP8.1小梦词典开发2:百度翻译API使用
原文出自:http://www.bcmeng.com/api2/ 小梦昨天和大家分享了WP8.1金山词霸API使用方法,今天继续分享windows phone 8.1中百度翻译API的使用方法.和昨天 ...
- C# 调用百度翻译Api
这是简单的界面.用的是wpf,winform也可以 具体的操作类 public partial class MainWindow : Window { string url = "" ...
- 百度翻译API(C#)
百度翻译开放平台:点击打开链接 1. 定义类用于保存解析json得到的结果 public class Translation { public string Src { get; set; } pub ...
- 利用百度翻译API,获取翻译结果
利用百度翻译API,获取翻译结果 translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys reload(sys) sys.set ...
- 有道翻译 / 百度翻译Api
比较推荐使用百度翻译api 不推荐有道翻译,比较水. http://ai.youdao.com/docs/doc-trans-api.s#p02 http://ai.youdao.com/docs/d ...
- 百度翻译api 实现简易微信翻译小程序
介绍 口袋翻译 口袋翻译 微信小程序 翻译功能 含7类语言的相互翻译 包含最近10条的翻译历史回溯功能 微信搜索:简e翻译 功能展示 使用百度翻译api需要申请 appid 与 key 并在 ap ...
随机推荐
- c++opencv中线条细化算法
要达到的效果就是将线条尽量细化成单像素,按照论文上的Hilditch算法试了一下,发现效果不好,于是自己尝试着写了一下细化的算法,基本原理就是从上下左右四个方向向内收缩. 1.先是根据图片中的原则确定 ...
- qt连接oracle数据库
由与qt开源版本没有提供oracle数据库驱动,需要自己根据源代码来手动编译oracle驱动. 经过近三天的折腾,终于成功编译oracle驱动,连接到数据库 ps:期间经过各种失败疼苦迷茫.现在终于完 ...
- Mysql 更新时间
Mysql时间加减函数为date_add().date_sub() 定义和用法DATE_ADD() 函数向日期添加指定的时间间隔.DATE_SUB() 函数向日期减少指定的时间间隔.语法DATE_AD ...
- 简单注册表单--HTML练手项目3【Table】
[本文为原创,转载请注明出处] 技术[HTML] 布局[Table] 步骤1 划分table布局 步骤2 填充内容 文本框+密码框+单选框+复选框+多行文本域+按钮 <input> ...
- 关于NSOperationQueue,一个容易让初学者误解的问题
凡是学习NSOperationQueue的人,都会遇到setMaxConcurrentOperationCount这个函数.在网上的许多博文中,都将setMaxConcurrentOperationC ...
- redis目录
一.redis基础 二.django-redis 三.redis数据操作详解 四.redis持久化
- 《浏览器工作原理与实践》<11>this:从JavaScript执行上下文的视角讲清楚this
在上篇文章中,我们讲了词法作用域.作用域链以及闭包,接下来我们分析一下这段代码: var bar = { myName:"time.geekbang.com", printName ...
- 06 Windows编程——设备句柄 和 WM_PAINT消息
windows程序在现实方式上属于图形方式,和文字方式的显示,有显著的不同. 什么是设备句柄,如何获取 使用统一的数据结构表示某一设备,这个结构就是设备句柄. 源码 #include<Windo ...
- 关于python logging模块读文档的几个心得
1. logger是分层级的,root是所有logger的祖先. 2. root这个logger在执行logging.warning() 等一系列方法和basicConfig()的时候才会被初始化ha ...
- #Python语言程序设计Demo - 七段数码管绘制
Python设计七段数码管绘制 单个数码管效果: 设计总数码管效果: Pyhton 编程: #七段数码管绘制 import turtle as t import time as T def drawG ...