百度翻译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 ...
随机推荐
- pymongo基础使用方法
本文通过文章同步功能推送至博客园,排版可能会有所错误,敬请见谅! 1.客户端初始化 初始化MongoDB客户端 client = pymongo.MongoClient('localhost',270 ...
- Java BinarySearch
Java BinarySearch /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternation ...
- aspnet core 全局模型验证,统一api响应
上手就来 新建一个模型验证过滤器,其中ApiResp是自定义的统一响应类. public class VldFilter:IActionFilter { /// <summary> /// ...
- java实现当前时间往前推N小时
import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; /** * @author sha ...
- CircularSlider半弧形滑动条
前言 这边文章主要 是写 一.半圆弧型滑块的设计 最近项目中需要用到半圆弧形滑块,其作用和UISlider差不多,用于拖动改变播放音乐的播放进度. 大概样子是这样的: 效果展示 特点如下: 滑动响应区 ...
- Mac下安装和配置Vue项目
题记:学vue有一段时间了,终于今天下定决心每日书写一篇学习笔记.1.访问node.js官网:https://nodejs.org/en/ 下载对应安装包.2.安装完成,在终端输入 : node -v ...
- C++ 虚函数相关
多态 C++的封装.继承和多态三大特性,封装没什么好说的,就是把事务属性和操作抽象成为类,在用类去实例化对象,从而对象可以使用操作/管理使用它的属性. 至于继承,和多态密不可分.基类可以进行派生,而派 ...
- leetcode-64. 最小路径和 · vector + DP
题面 Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right wh ...
- centos 升级glibc-2.17
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55. ...
- 理解JVM之内存分配以及分代思想实现
1.基本内存分批策略 大多数情况在新生代Eden区分配,如果启动了本地线程分配缓冲,将按线程优先在TLAB(线程私有缓冲区)上分配.当Eden区域没有足够的空间时将发起一次Minor GC. 值得注意 ...