【问题标题】:WikiMedia API - How to determine which portal(s) a Page belongs to?WikiMedia API - 如何确定页面属于哪个门户?
【发布时间】:2022-06-14 15:50:28
【问题描述】:

我希望使用 MediaWiki API 确定给定的 Wikipedia 页面是否属于某个 Wikipedia Portal。到目前为止,我一直在试验 API 的 page properties,但我似乎无法找到一种方法来派生给定页面所属的 Portal。

例如,在页面最底部的Cake 的维基百科页面上,我可以在Cakes 部分按显示,然后显示一堆显示不同蛋糕页面的链接。在那里我还可以看到所有这些都属于美食门户。这是我希望使用 MediaWiki API 从给定页面中提取的信息。

【问题讨论】:

    标签: mediawiki wikipedia-api mediawiki-api


    【解决方案1】:

    所以通过更多调查,我找到了答案:

    我最终在 API 中使用了 Revisions 属性。这允许我提供一系列我想要调查的页面标题,并让每个页面的 HTML 以 json 格式返回给我。然后我可以搜索包含Portal 的行并找出该页面属于哪个门户(如果有)。

    如果有人遇到类似情况,这里是对 API 的示例查询:

    https://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=Bread|Bubble_tea|Pizza&format=json&redirects&rvprop=content&rvslots=main

    【讨论】:

      【解决方案2】:

      据我所知,维基百科中实际上没有“属于门户”的正式定义。与 MediaWiki 软件中的类别不同,门户是 Wikipedia 的自定义页面,旨在让探索主题变得更容易。

      不过,您可以使用启发式方法并根据其中一个链接到另一个门户来确定页面和某个门户之间的连接,而不是正式定义。两者都有 API 端点:

      注意: 'Portal` 命名空间的100 is the id

      “蛋糕”和“披萨”页面链接了哪些门户

      https://en.wikipedia.org/w/api.php?action=query&format=json&prop=links&titles=Cake%7CPizza&plnamespace=100

      哪些门户链接到“蛋糕”页面

      https://en.wikipedia.org/w/api.php?action=query&format=json&prop=linkshere&titles=Cake%7CPizza&lhnamespace=100
      (尽管您可以看到,许多不相关的门户网站链接到“蛋糕”,而没有链接到“披萨”)

      两个方向的组合查询

      https://en.wikipedia.org/w/api.php?action=query&format=json&prop=links%7Clinkshere&titles=Cake%7CPizza&plnamespace=100&lhnamespace=100

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-06-17
        • 2014-01-06
        • 1970-01-01
        • 1970-01-01
        • 2019-05-18
        • 2010-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多