【问题标题】:Wikipedia Page Id from URL来自 URL 的维基百科页面 ID
【发布时间】:2014-04-27 19:09:27
【问题描述】:

我正在通过 java 中的维基百科转储进行解析。在我的模块中,我想知道当前页面引用的 wiki 内部页面的页面 ID。获取内部链接以及从中获取 url 很容易。但是如何从 url 中获取 Page ID。

我必须为此使用一些 mediaWiki 吗?如果是的话如何 还有其他选择吗?

例如:http://en.wikipedia.org/wiki/United_States 我想得到它的 Page-Id 即 3434750

【问题讨论】:

  • 页面中指定的页面id在哪里?
  • 如果 Wikipedia 没有提供 API 供您检索此信息,看起来您需要在“爬虫”中构建一些自动化功能才能进入每个页面并检索您想要的 ID(您可以试试 Selenium/HTMLUnitDriver)。
  • Wikipedia API 开始。从页面源代码来看,这个 ID 似乎是 mw.config.set 中的 wgArticleId,但我不确定如何从 API 中提取它。
  • 我想我必须做一些解析来检索它

标签: java mediawiki wikipedia wikipedia-api


【解决方案1】:

您可以为此使用 API。具体来说,查询看起来像:

http://en.wikipedia.org/w/api.php?action=query&titles=United_States

(也可以在titles参数中指定多个页面标题,以|分隔。)

您也可以下载page.sqldump(英文维基百科压缩为1 GB),其中也包含此信息。要实际查询它,您可以将其导入 MySQL 数据库然后查询,也可以直接解析 SQL。

【讨论】:

    【解决方案2】:

    如果您无法使用该 api,您始终可以通过将 ?action=info 附加到 url 来从到达的信息页面中获取 pageID。应该为解析器提供更好的起点。

    对于您上面的示例:https://en.wikipedia.org/wiki/United_States?action=info

    【讨论】:

      猜你喜欢
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多