@syupo
2014-12-03T01:50:22.000000Z
字数 1792
阅读 514
工作趣谈
通过上一步骤得到的请求信息:
Request URL: http://fanyi.baidu.com/v2transapi
Request Method: POST
Post Data:
from:en
to:zh
query:sublime
transtype:hash
简单来说:比如你想查询单词sublime,那么请求地址可以这么写:
http://fanyi.baidu.com/v2transapi?from=en&to=zh&query=sublime&transtype=hash
当然Response信息更加重要:
找到"simple_means"这个json对象 我们只看它(重要信息都在这里哦)。
它的结构类似下面这样:
"simple_means": {
"symbols": [
{...}
],
"items": [
""
],
"word_name": "sublime",
"exchange": {
...
},
"is_CRI": 1
}
做开发的朋友可能一眼就可以看出这些东西都代表什么意思吧。
如果想开发自己的翻译软件的朋友们注意了,可利用的资源都出来喽。
"ph_en":"s\u0259'bla\u026am",
"ph_am":"s\u0259\u02c8bla\u026am",
"ph_other":""
"ph_en_mp3":"\/oxford\/0\/df\/c2\/dfc2216477cffc05c32977af92286687.mp3",
"ph_am_mp3":"\/1\/0\/34\/8c\/348c880664f2e1458b899ced2a3518e6.mp3",
"ph_tts_mp3":"\/3\/4\/8\/348c880664f2e1458b899ced2a3518e6.mp3",
"parts":[
{
"part":"adj.",
"means":[
"\u5e84\u4e25\u7684\uff0c\u96c4\u4f1f\u7684",
"\u4ee4\u4eba\u8d5e\u53f9\u7684",
"\u6781\u7aef\u7684",
"\u50b2\u6162\u7684"
]
},
{
"part":"n.",
"means":[
"\u5e84\u4e25\uff0c\u5d07\u9ad8",
"\u9ad8\u65e0\u4e0a\uff0c\u9876\u70b9"
]
},
{
"part":"vt.",
"means":[
"\uff08\u4f7f\uff09\u5347\u534e\uff0c\u7cbe\u7ec3",
"\uff08\u4f7f\uff09\u53d8\u9ad8\u5c1a"
]
},
{
"part":"vi.",
"means":[
"\u5347\u534e",
"\u53d8\u9ad8\u5c1a"
]
}
]
还有其他反义词,同义词,复数形式,过去式等等,大家可自己查看分析。
注意一点,返回的所有文本内容都使用了Unicode编码,所以需转换一下才能知道具体内容。
下面我们具体来看看如何发音文件获取:
以sublime为例,点击百度翻译页面上的发音小喇叭可获取发音文件流。
请求地址如下:
英式发音 : sublime
美式发音 : sublime
非英语(例如日语:あい):
あい
相应的中文翻译发音:
爱
但是有趣的是在百度首页搜索sublime,然后在搜索结果页上点击发音按钮,得到的发音效果和百度翻译不一样,后来发现用的是爱词霸的词源(百度翻译的合作方吧)
比对请求地址竟然是这里的symbols对象中ph_en_mp3,ph_en_mp3,ph_tts_mp3值。
拼接上爱词霸的mp3资源地址,也可以获取发音文件。
mp3:http://res.iciba.com/resource/amp3
tts:http://res-tts.iciba.com
OK 分析到此结束,剩下的由你自由发挥了!(希望百度翻译团队不要拉黑我)