【问题标题】:How can I get a random article in a specific category from the Wikipedia API?如何从 Wikipedia API 中获取特定类别的随机文章?
【发布时间】:2017-04-20 19:03:11
【问题描述】:

这是我使用 Wiki API 获取一篇随机文章的链接:

https://en.wikipedia.org/w/api.php?%20format=json&action=query&prop=extracts&exsentences=2&exintro=&explaintext=&generator=random&grnnamespace=0

我需要从中得到第一部分的前两句话,而且效果很好。


我想使用这种链接并在特定类别中搜索这篇随机文章。这是我在网上搜索后尝试的:

https://en.wikipedia.org/w/api.php?%20format=json&action=query&prop=extracts&exsentences=2&exintro=&explaintext=&generator=random&grnnamespace=0&cmtitle=Category:Music

(我已将这部分添加到原链接:cmtitle=Category:Music

这对我不起作用。 它像第一个链接一样获取随机文章(不在想要的类别下,即此链接中的音乐)。

【问题讨论】:

  • 怎么不工作?
  • 我已经编辑了我的问题
  • 检查这个问题的答案是否有帮助。 stackoverflow.com/questions/28520429/… 不是 JSON,但它肯定可以被解析以适应
  • 是的,我已经看过这篇文章,但我之所以问,是因为我需要 JSON 格式的信息。谢谢。

标签: wikipedia-api


【解决方案1】:

没有 API 可以获取随机类别成员(并且使用来自一些不相关 API 模块的参数肯定没有帮助)。你可以截屏 Special:RandomInCategory (或者把它变成一个 API 模块 - patches welcome :)

【讨论】:

    【解决方案2】:

    尝试使用cmlimit 获取所有类别成员,然后使用编程语言,如Python 请求页面,然后将每个类别存储在一个数组中,并使用random 模块获取随机catgeorymember 从您存储它们的数组中。然后您可以在链接中使用它来获取 categorymember 的特定页面或您需要的任何其他内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多