我想使用wikionary API获取所选单词的含义。 内容检索数据应该与“当天的词”中提供的相同,只是没有etympology,同义词等的基本含义。 例如
“postiche n 头部或脸部佩戴的任何假发,如假胡须或假发。“
我尝试过使用文档,但我可以找到类似的例子,有人可以帮忙解决这个问题吗?
答案 0 :(得分:13)
虽然MediaWiki有一个API(api.php
),但如果您只想检索一个API的源代码,则可能最简单的方法是将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
令人遗憾的是,wiki页面的格式侧重于演示(针对人类读者)而非语义(针对机器),因此您不应对没有“获取字词定义”API命令感到惊讶。相反,您的脚本必须理解维基编辑人员创建和使用的众多文本格式模板,以及复杂的表示格式语法,包括标题,无序列表等。例如,以下是“溢出”页面的源代码:
http://en.wiktionary.org/w/index.php?title=overflow&action=raw
是API中的“生成XML解析树”选项,但它并没有将大部分表示格式化为XML。亲自看看:
如果您想知道MediaWiki以外的MediaWiki格式页面是否存在解析器,请不要。至少没有用JavaScript编写的任何当前维护的内容(请参阅list of alternative parsers,并查看列出的两个网站)。即使这样,支持大多数/所有常见模板也将是一个巨大的挑战。祝你好运。
答案 1 :(得分:1)
好的,我承认失败。
在some files中有Pywikipediabot与维基词典相关,我查看代码,看起来你应该能够解析意义/定义字段对你而言。
然而,过去半小时已经说服了我。代码写得不好,我想知道它是否曾经有效。
所以我推迟到idealmachine's answer,但我想我会发布这个以拯救其他人犯同样的错误。 :)
答案 2 :(得分:0)
MediaWiki确实有一个API,但它是低级别的,并且不支持每个wiki的特定内容。例如,它没有维基百科的百科全书支持,也没有维基词典的字典支持。您可以使用API检索页面或部分的原始wiki文本标记,但您必须自己解析它。
第一个警告是每个维基词典都有自己的格式,但我认为你只对英文维基词典感兴趣。许多工具使用的一个廉价技巧是获得以“#”字符开头的第一行。这通常是第一个谐音的第一感定义的文本。
另一个警告是,每个维基词典都使用许多维基模板,所以如果你看原始文本,你会看到很多这些。可靠地扩展这些模板的唯一方法是使用action=parse
调用API。
答案 3 :(得分:0)
如前所述,Wiktionary页面的内容采用人类可读的格式df3 = df[~df.Column_C.isin(l)]
,因此MediaWiki API不允许获取单词的含义,因为数据不是结构化的。
但是,每个页面都遵循特定的convention,因此从wikitext
中提取含义并不难。此外,还有一些API,例如Wordnik或Lingua Robot,用于解析Wiktionary内容并以JSON格式提供。