【问题标题】:Get an article summary from the MediaWiki API从 MediaWiki API 获取文章摘要
【发布时间】:2014-09-08 12:38:34
【问题描述】:

我正在寻找一个 mediawiki api,使用它我可以获得关于任何查询字符串的简短描述。例如,如果我搜索 Nicolas Cage,那么它应该返回他的简短描述。

我试过http://en.wikipedia.org/w/api.php?%20format=json&action=query&titles=Nicolas%20Cage&prop=revisions&rvprop=content

我不确定 prop=revisions 是否正确。我的目的是在页面的最终版本上得到一个简短的描述。

我还需要另一个 api,它可以从查询字符串中提供维基百科页面(网络/移动)的链接。即对于 Nicolas Cage,应返回 http://en.wikipedia.org/wiki/Nicolas_cage。

【问题讨论】:

    标签: mediawiki mediawiki-api


    【解决方案1】:

    比如说,你想得到一个搜索字符串 Nicolas Cage 的摘要。

    步骤 1. 获取页面 id:
    “https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=Nicolas%20Cage&format=json&srlimit=1”
    步骤 2. 使用此页面 id 获取页面的第 0 部分: "https://en.wikipedia.org/w/api.php?action=parse&section=0&pageid=21111&prop=text&format=json"
    步骤 3. 根据要求进行解析。
    为 Python 扩展的第 3 步:对目标标签使用 BeautifulSoup,get_text() 给出纯文本。
    使用 rvprop 获取最新版本,进一步阅读 mediaWIKI 文档。

    替代解决方案:
    步骤 1. 使用上面的步骤 1 获取页面标题。
    Step 2. 使用如下标题:https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=Nicolas%20Cage

    【讨论】:

      【解决方案2】:
      1. MediaWiki默认没有页面摘要这种东西,但是你可以这样获取页面的第一段:http://en.wikipedia.org/w/api.php?action=parse&page=Nicolas_Cage&prop=text&section=0
        如果 wiki 安装了扩展程序 PageSummaries,您可以使用它来获得您所要求的内容(例如扩展程序描述页面中的 this example)。

      2. 要查找与字符串匹配的页面,请使用开放式搜索功能,如下所示:http://en.wikipedia.org/w/api.php?action=opensearch&search=Nicolas%20cage&namespace=0

      编辑:@Bergi 在打开搜索的 cmets 中指出还提供了页面摘要。我不知何故错过了。

      【讨论】:

      • +1。 Opensearch 甚至会在其<description> 节点中为您提供摘录
      • 使用action=query 还可以使用&prop=extracts 来更好地控制提取的长度。
      猜你喜欢
      • 1970-01-01
      • 2021-07-24
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 2011-02-03
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多