xpath - 区分维基百科消歧和普通页面

标签 xpath wikipedia wikipedia-api

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

现在,这本身并不是戏剧性的。我编写了一个 XPath 表达式来检索维基百科消歧页面的第一个链接:(/html/body/div[@id='content']/div[@id='bodyContent']//a[开始于(@href, '/wiki')]/@href)[1]。这意味着我可以只使用第一个链接作为我试图从中检索内容的页面。

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

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

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

查看两种类型页面上的内容:在这里,唯一的区别是有些页面在顶部显示“This page may refer to”。然而,并不是所有的页面都提到了这一点。

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

总而言之,有谁知道区分维基百科消歧页面和具有实际内容的维基百科页面的方法吗?

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

最佳答案

现在可以使用 ?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":{"消歧义":"","wikibase_item":"Q410694"}}}}}

关于xpath - 区分维基百科消歧和普通页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8159353/

相关文章:

python - 使用 python 增量解析大型维基百科转储 XML 文件

wikipedia - Freebase/DBpedia/wikidata.org -- 差异

xpath - normalize-space(.) 和 normalize-space(text()) 有什么区别?

java - 在 Java 中将 JSON 转换为 XML

firefox - MediaWiki 删除了 MathJax。可以以另一种方式在客户端强制 MathJax 吗?

php - 如何将维基百科添加到 wordpress 插件中

php - 如何用 PHP 解析维基百科 XML?

javascript - "Object doesn' t 支持属性或方法”当我尝试调用插件时

没有命名空间的 Python XpathEvaluator

python - 是否有一个 Python 模块可以在没有 MediaWiki 的情况下解析 Wikipedia 文章?