2010-11-14 79 views
6

我想用wikionary API获取选定单词的含义。 内容检索数据应该是相同的,如“每日一词”提出,只有基本的含义,而不etympology,别名等。 例如wikionary API - 单词的词义

“仿造品ñ 的戴在头上的假发任何项目或脸上,如假胡须或假发。“

我试过使用文档,但我可以找到类似的例子,任何人都可以帮助解决这个问题吗?

+0

我相信主页上的“每日一词”框的内容是手动编辑的,以保持简短。打开文章时,您会看到该词的更多含义。 – 2010-11-14 01:37:01

+1

另请参阅http://stackoverflow.com/questions/3364279/has-anyone-parsed-wiktionary – pfctdayelise 2010-11-14 12:36:54

回答

13

虽然链接到MediaWiki有一个API(api.php),这可能是最简单的为您的目的只使用action=raw参数index.php如果你只是想找回一个版本(不是裹着XML,JSON等的源代码,而不是API)。

例如,这是一天页面为11月14日的原话:

http://en.wiktionary.org/w/index.php?title=Wiktionary:Word_of_the_day/November_14&action=raw

什么不幸的是,维基网页的格式,侧重于表现(对人类阅读器),而不是语义(针对机器),所以您不应该对没有“获取字定义”API命令感到惊讶。相反,您的脚本必须了解Wiktionary编辑器创建和使用的众多文本格式模板,以及复杂的表示格式语法,包括标题,无序列表和其他格式模板。例如,这里是在网页“溢出”的源代码:

http://en.wiktionary.org/w/index.php?title=overflow&action=raw

在API中“生成XML解析树”的选项,但它不会破坏太多表象的格式化为XML。只是看到自己:

http://en.wiktionary.org/w/api.php?action=query&titles=overflow&prop=revisions&rvprop=content&rvgeneratexml=&format=jsonfm

如果你想知道是否存在比其他链接到MediaWiki链接到MediaWiki格式的网页解析器,没有,没有。至少目前没有用JavaScript编写的任何内容(请参阅list of alternative parsers,并检查列出的两个网站)。即便如此,支持大多数/所有常见模板将是一个巨大的挑战。祝你好运。

1

好吧,我承认失败。

some filesPywikipediabot有关维基词典,我看代码,它看起来像你应该能够得到它的解析含义/定义域为您服务。

然而,最后半小时已经说服了我,否则。代码写得不好,我不知道它是否有效。

所以我按照idealmachine's answer,但我想我会张贴这个来拯救任何其他人犯同样的错误。 :)

0

MediaWiki确实有一个API,但它是低层次的,并且不支持任何特定于每个wiki的内容。例如,它没有维基百科的百科全书支持,也没有维基文库的字典支持。您可以使用API​​检索页面或部分的原始Wikitext标记,但必须自己解析。

第一个警告是,每个维基词典都有自己的格式,但我认为你只对英文维基词典感兴趣。许多工具使用的一个便宜的技巧是获得以'#'字符开头的第一行。这通常是第一个同音词的第一个意义定义的文本。

另一个需要注意的是,每一个维基文库都使用了很多维基模板,所以如果你在查看原始文本,你会看到很多维基模板。可靠地扩展这些模板的唯一方法是使用action=parse调用API。