【问题标题】:mediawiki-api - iterating through continue to get all resultsmediawiki-api - 迭代继续获得所有结果
【发布时间】:2014-07-28 08:13:19
【问题描述】:

我正在尝试创建一个类别中所有子类别的列表,并为所有这些子类别创建它们的基本类别信息。 (文件数、子类别等)

我非常接近 - 只是忙于处理继续过程。

这让我获得了前 100 个结果:

http://en.wikipedia.org/w/api.php?action=query&format=xml&generator=categorymembers&gcmtitle=Category:Google%20Art%20Project%20works%20by%20artist&gcmlimit=100&gcmprop=ids|title&prop=categoryinfo&continue=

但是,有成千上万的子类别。

结果包括一个带有 gcmcontinue 和 continue 属性的 xml 节点。

如果我在第二个请求中使用它,这会给我接下来的 100 个结果:

http://en.wikipedia.org/w/api.php?action=query&format=xml&generator=categorymembers&gcmtitle=Category:Google%20Art%20Project%20works%20by%20artist&gcmlimit=100&gcmprop=ids|title&prop=categoryinfo&continue=gcmcontinue||&gcmcontinue=subcat|4c41555245c380204241525241550a474f4f474c45204152542050524f4a45435420574f524b53204259204c41555245c38020424152524155|38370707

但是,这就是我遇到问题的地方。这些(第二)组结果不再有 continue xml 节点,所以我不确定如何访问第三页等等。

(作为旁注,我知道如果我想 - 我必须处理子子类别 - 但我不需要那些,只要第一级就可以了。)

【问题讨论】:

  • 如果我将 gclimit 更改为 50,我注意到我能够使用一系列 gcmcontinue 继续迭代后续页面。但是,我还是满了200。 (共 4 页,共 50 页。)我意识到如果您转到 commons.wikimedia.org/wiki/… 的实时类别,它只显示 200 个子类别,然后有一个“下一个 200”链接。也许这就是我只得到 200 的原因。如果是这样,我该如何继续?
  • /headslap 因此,如果您想从 commons 获取结果,请确保您点击“commons.wikimedia.org”而不是“en.wikipedia.org”!抱歉...我认为这可以解决问题。我很快就会肯定地说。
  • 是的,解决了它。能够获取所有类别。无法回答我自己的问题,声望太低,因此保持开放状态。
  • 我认为您的解决方案对其他人没有用处,因此您可能会考虑删除该问题。

标签: mediawiki wikipedia wikipedia-api mediawiki-api


【解决方案1】:

James 自己的回答:因此,如果您想要来自 commons 的结果,确保您点击“commons.wikimedia.org”而不是“en.wikipedia.org”会有所帮助!这就是问题所在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 2015-07-18
    • 2023-04-02
    • 2014-05-02
    • 1970-01-01
    • 2020-08-15
    相关资源
    最近更新 更多