百度翻译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 ...
随机推荐
- mysql5.7主主(双主)复制
在server1上操作 vi /etc/my.cnf 修改或添加下面这几行: server-id=1 log-bin=mysql-bin # 启用二进制日志 auto-increment-increm ...
- 工欲善其事必先利其器之Vagrant + VirtualBox
Vagrant 可以管理 VirtualBox,实现快速配置创建虚拟机 1.下载软件 VirtualBox虚拟机下载地址:https://www.virtualbox.org/wiki/Downloa ...
- wstngfw中配置squid
wstngfw中配置squid Squid是一个缓存 Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据.当一个用户想要下载一个主页时,可以向 Squid 发出一个申请,要 S ...
- Django-2.0 汉化
1.语言 LANGUAGE_CODE = 'zh-hans' 2.时区 TIME_ZONE = 'Asia/Shanghai' 3.字段名汉化 models.CharFielf(verbose_nam ...
- js移动端回退监听 popstate
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- MGB的生成代码解析
目录 @ 问题描述 文字描述 问题是在我刚刚学习MyBatis逆向工程时出现的,我发现使用Example是可以创建两个Criteria对象,并且两个对象也都可以添加条件,但是在运行过程中只会执行第一次 ...
- 关于cubic-bezier 贝塞尔曲线的简单了解
在animation和transition两个属性中,cubic-bezier是控制变化的速度曲线,主要是生成速度曲线的函数 规定用法是: cubic-bezier(<x1>,<y1 ...
- xposed获取类的属性成员
XposedBridge.log("开始获取属性:"); Field[] fields = param.thisObject.getClass().getDeclaredField ...
- dbm和发射功率得对照表
原文链接:https://blog.csdn.net/nicholas_dlut/article/details/80950163dBm mW 下面是dbm和发射功率得对照表. 基本上市面上所有的无线 ...
- 微信小程序开发(十二)Promise将异步改为同步
// utils/utils.js /** * requestPromise用于将wx.request改写成Promise方式 * @param:{string} myUrl 接口地址 * @retu ...