【问题标题】:How can I get data from MediaWiki API if the title doesn't exactly match?如果标题不完全匹配,我如何从 MediaWiki API 获取数据?
【发布时间】:2012-09-05 15:14:16
【问题描述】:

我正在尝试从不同的 Wikipedia 页面获取一些信息,但在 MediaWiki 结果中,如果我在查询中使用的标题与页面标题不完全匹配,我不会从页面获取数据。有没有办法让这个标题最匹配?可能类似于 SQL LIKE 运算符?

这是一个例子。使用titles="Sankt-Jacobikirche" 我没有找到我正在寻找的页面。

http://nl.wikipedia.org/w/api.php?action=query&prop=extracts|info&titles=Sankt-Jacobikirche&exintro=1&inprop=url

有时至少我会得到正确的标题,这样我就可以提出新请求并获得正确的页面,例如titles="Sankt-Jacobikirche_(Hamburg)"

http://nl.wikipedia.org/w/api.php?action=query&prop=extracts|info&titles=Sankt-Jacobikirche_(Hamburg)&exintro=1&inprop=url

并获得带有我在 REDIRECT 或 Normalized 部分中获得的标题的正确页面,就像正确的标题一样:titles="Sint-Jacobikerk (Hamburg)"

我怎样才能从titles="Sankt-Jacobikirche" 开始获得这些最终数据?

【问题讨论】:

  • 我认为搜索以该名称开头的所有页面通常不是很有用。大多数时候,如果正确的冠词是“X(some disambiguation)”,那么冠词“X”也存在。如果不是,则不需要消歧。我认为你提到的这篇文章是一个例外,而不是一个规则。
  • 实际上它发生在我正在搜索的许多地方。现在,如果我得到一个空的结果,我会做一个像这样的新请求:nl.wikipedia.org/w/… (Hamburg) 所以如果这个调用的结果不是空的,我会用新的标题再试一次,但是这个结果仍然有很多次是空的
  • 自从我问这个问题已经有一段时间了,我仍然无法解决它,但如果其他人对 Wikipedia API 有这种问题,我建议他看看 www.freebase.com 和他们的 API。
  • @Txaku,不会飞 Freebase 已合并到 Wikidata,因此 MediaWiki Web API 是访问它的方式。 :)

标签: match mediawiki sql-like wikipedia-api


【解决方案1】:

你没有说你想要达到什么,但正如 svick 所说,猜测标题是一个例外,而不是规则。

您需要先通过title search APIfull text search API 获得正确的标题。

【讨论】:

    猜你喜欢
    • 2011-09-01
    • 2020-05-09
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2019-11-30
    相关资源
    最近更新 更多