如何将谷歌词典用作API?

31

由于Google字典API已被弃用(例如以下内容)

http://www.google.com/dictionary/json?callback=a&sl=en&tl=en&q=love

并已被替换为define(例如,以下)

https://www.google.com/#q=define+love

有人知道如何在Java中使用/调用“Google define” API吗?

这是一个可以实现类似功能的Chrome扩展程序。

https://chrome.google.com/webstore/detail/google-dictionary-by-goog/mgijmajocgfcbeboacabfgobmjgjcoja

作为替代方案,是否有任何开源词典API?我找到了提供订阅模式API的牛津(OED)、剑桥、韦氏、Wordnik API。

还发现了Wordnet 3.1,但它相当古老。不确定它是否正在更新中。

3个回答

64

很不幸,像其他人所说的一样,Google字典API已被弃用。

由于我在我的项目中需要使用Google字典API,所以我决定自己创建一个API。

我爬取了网页 https://www.google.com/#q=define+term 其中term是您想要获取含义的任何单词,并创建了这个API。您可以在此处找到它。

如何使用

向API发送URL请求的基本语法如下所示:

https://api.dictionaryapi.dev/api/v2/entries/<--language_code-->/<--word-->

例如,要获取英文单词“hello”的定义,可以发送请求到:

https://api.dictionaryapi.dev/api/v2/entries/en/hello

如果有的话,API还提供单词的其他含义、例句和同义词。

如果您希望我包含其他细节,请评论,我将乐意扩展API以满足您的需求。

源代码在GitHub上。


1
如果有人感兴趣 - 这个答案在聊天中讨论 - Benjamin Gruenbaum
2
这太棒了,请继续保持。 - excitedmicrobe
1
嗨@SurajJain,它的编写非常干净简洁。它包含了我想要的一切。但我想获得单词发音(音标)。您可能希望将定义作为数组排序。否则,我们必须通过循环单词类来查找所需内容。例如({“0”:{data}...谢谢。 - excitedmicrobe
1
你可以像访问变量定义一样访问它。假设返回的JSON存储在变量定义中。然后,你可以按如下方式访问含义:meaning.noun[0],meaning.noun[1]等等。@RawandAhmedShaswar - Suraj Jain
1
@KoviNET,它有效,我刚试过了。 - Suraj Jain
显示剩余11条评论

9
是的!Google词典已经无法使用了。 这个网站可以完成相同的任务,但仍然可以使用。
据我所知,词典查询是最受欢迎的之一,如下所列: www.programmableweb.com/apitag/dictionary/1?q=dictionary&sort=mashups

谢谢回复。我会仔细研究的。 - zack0438
3
这是“Dictionary Lookup”(aonaware.com)API服务的索引页面 - http://services.aonaware.com/DictService/DictService.asmx。您可以在此页面上检查查询所有相关字典中特定单词的API:http://services.aonaware.com/DictService/DictService.asmx?op=Define。此外,可以在此处指定特定的字典:http://services.aonaware.com/DictService/DictService.asmx?op=DefineInDict(字典列表可在此处找到:http://services.aonaware.com/DictService/DictService.asmx/DictionaryList)。 - d4vidi

0
为了获得最好的定义,我建议使用 Merriam-Webster 或 Oxford 的 API。只要您的使用不是商业用途,每天最多可以查询 1,000 次(Merriam-Webster),每月最多可以查询 3,000 次(Oxford)。

1
似乎牛津API允许商业使用 - rraallvv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接