【问题标题】:Distinguish Wikipedia Disambiguations from Normal Pages区分 Wikipedia Disambiguations 与 Normal Pages
【发布时间】:2011-12-30 20:31:48
【问题描述】:

目前,我正在尝试将给定 Wikipedia 页面的内容检索到纯文本文件中。使用 XPath,我的代码可以完美地做到这一点。然而,只有一个简单的问题:维基百科上的某些页面是消歧页面。

现在,这本身并不引人注目。我编写了一个 XPath 表达式,用于检索 Wikipedia 消歧页面的第一个链接:(/html/body/div[@id='content']/div[@id='bodyContent']//a[starts-with(@href, '/wiki')]/@href)[1]。这意味着我可以将第一个链接用作我试图从中检索内容的页面。

不,真正的问题是我没有找到任何方法知道何时使用该代码(从消歧页面检索第一个链接的那个)或另一段代码(直接从有趣页面获取内容的,非消歧的)。确实,我似乎无法找到一种方法来区分已消除歧义的页面与正常页面。

到目前为止,我已经尝试过:

查看已消除歧义的页面的来源并将其与正常页面进行比较:我找不到差异。

查看这两种页面的内容:在这里,唯一的区别是某些页面在顶部显示“此页面可能引用”。但是,并非所有页面都真正提到了这一点。

一个简单的解决方案是查看页面的标题(例如,http://en.wikipedia.org/wiki/Boston_(disambiguation))。但是,并非所有已消除歧义的页面的标题中都包含“消除歧义”一词:http://en.wikipedia.org/wiki/Freedom

所以,总而言之,有没有人知道一种方法来区分维基百科消歧页面和维基百科页面的实际内容?

编辑:这实际上与问题无关,但我正在使用 Objective-C 进行编程。

【问题讨论】:

    标签: xpath wikipedia wikipedia-api


    【解决方案1】:

    现在可以使用 ?action=query&prop=pageprops 直接从 API 获取此内容,而不是依赖类别

    示例:http://en.wikipedia.org/w/api.php?action=query&prop=pageprops&format=json&titles=Ekeby 将返回:

    {"query":{"pages":{"24789600":{"pageid":24789600,"ns":0,"title":"Ekeby","pageprops":{"disambiguation":"","wikibase_item":"Q410694"}}}}}

    【讨论】:

      【解决方案2】:

      区分消歧页面与实际文章的正确方法是所有消歧页面都是隐藏类别Category:All disambiguation pages的成员。

      但是解析实际的 HTML 可能不是一个好主意。您应该改用the API。使用它,您可以检查某个类别的成员资格或获取文章文本。许多语言已经有用于与 API 通信的库,但我还没有找到用于目标 C 的库。

      【讨论】:

      • 完美,正是我需要的。如果有人需要 Wikipedia API 链接,请点击此处:en.wikipedia.org/w/…
      • 消歧器扩展不再适用
      猜你喜欢
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 2023-03-11
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-23
      相关资源
      最近更新 更多