[关闭]
@syupo 2014-12-03T09:50:22.000000Z 字数 1792 阅读 496

爬一爬百度翻译

工作趣谈


爬一爬

  1. 用猎豹浏览器打开百度翻译网页
  2. 右键->审查元素 调出开发工具面板
  3. 选择[Network]标签项
  4. 在页面中输入单词[sublime]
  5. 在[Network]标签项的控制台中找到名为v2transapi的请求,点击它查看右侧的详细信息
    注:(也可选用其他工具或浏览器,此处只是为了得到请求和响应信息)

分析

通过上一步骤得到的请求信息:

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对象 我们只看它(重要信息都在这里哦)。
它的结构类似下面这样:

  1. "simple_means": {
  2. "symbols": [
  3. {...}
  4. ],
  5. "items": [
  6. ""
  7. ],
  8. "word_name": "sublime",
  9. "exchange": {
  10. ...
  11. },
  12. "is_CRI": 1
  13. }

做开发的朋友可能一眼就可以看出这些东西都代表什么意思吧。
如果想开发自己的翻译软件的朋友们注意了,可利用的资源都出来喽。

  1. "ph_en":"s\u0259'bla\u026am",
  2. "ph_am":"s\u0259\u02c8bla\u026am",
  3. "ph_other":""
  1. "ph_en_mp3":"\/oxford\/0\/df\/c2\/dfc2216477cffc05c32977af92286687.mp3",
  2. "ph_am_mp3":"\/1\/0\/34\/8c\/348c880664f2e1458b899ced2a3518e6.mp3",
  3. "ph_tts_mp3":"\/3\/4\/8\/348c880664f2e1458b899ced2a3518e6.mp3",
  1. "parts":[
  2. {
  3. "part":"adj.",
  4. "means":[
  5. "\u5e84\u4e25\u7684\uff0c\u96c4\u4f1f\u7684",
  6. "\u4ee4\u4eba\u8d5e\u53f9\u7684",
  7. "\u6781\u7aef\u7684",
  8. "\u50b2\u6162\u7684"
  9. ]
  10. },
  11. {
  12. "part":"n.",
  13. "means":[
  14. "\u5e84\u4e25\uff0c\u5d07\u9ad8",
  15. "\u9ad8\u65e0\u4e0a\uff0c\u9876\u70b9"
  16. ]
  17. },
  18. {
  19. "part":"vt.",
  20. "means":[
  21. "\uff08\u4f7f\uff09\u5347\u534e\uff0c\u7cbe\u7ec3",
  22. "\uff08\u4f7f\uff09\u53d8\u9ad8\u5c1a"
  23. ]
  24. },
  25. {
  26. "part":"vi.",
  27. "means":[
  28. "\u5347\u534e",
  29. "\u53d8\u9ad8\u5c1a"
  30. ]
  31. }
  32. ]

还有其他反义词,同义词,复数形式,过去式等等,大家可自己查看分析。
注意一点,返回的所有文本内容都使用了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 分析到此结束,剩下的由你自由发挥了!(希望百度翻译团队不要拉黑我)

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注