@syupo
2014-12-03T01:50:22.000000Z
字数 1792
阅读 576
工作趣谈
通过上一步骤得到的请求信息:
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 分析到此结束,剩下的由你自由发挥了!(希望百度翻译团队不要拉黑我)