【问题标题】:How to get total number of edits for a given wikipedia page from the API?如何从 API 获取给定维基百科页面的编辑总数?
【发布时间】:2014-03-04 10:41:08
【问题描述】:

我实际上并不想列出每个编辑,而只想得到它的数量。

此数据可用于链接中左侧面板上的每篇文章:

https://en.wikipedia.org/w/index.php?title=Wikipedia&action=info

但这会生成包含表格、格式等的完整网页,并且它对于维基百科服务器来说是详尽无遗的。所以我问是否有办法只获得这几个数字并省略整个网站的抓取。

【问题讨论】:

    标签: wikipedia-api


    【解决方案1】:

    可能不是您想要的答案,但无法获取此信息yet.

    作为一种解决方法,您可以使用prop=revisions 来获取对文章所做的所有修订。您将能够从这里计算rev 标签:

    http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=Wikipedia&prop=revisions&rvprop=ids&rvlimit=max

    或者,您可以使用以下命令让 YQL 为您计算它:

    SELECT * FROM xml 
    WHERE url="http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=Wikipedia&prop=revisions&rvprop=ids&rvlimit=max" 
    AND itemPath="/api/query/pages/page/revisions/rev"
    

    示例输出(Link to full output):

    {
        "query": {
            "count": 500, //This is the total amount of edits
            "created": "2014-03-04T02:29:42Z",
            "lang": "en-US",
            "results": {
                "rev": [{
                    "parentid": "597995345",
                    "revid": "598005528"
                }, {
                    "parentid": "597994174",
                    "revid": "597995345"
                }, {
                    "parentid": "597891867",
                    "revid": "597994174"
                }]
            }
        }
    }
    

    不幸的是,用户检索修订数据的upper limit500,而机器人则是5000

    要获得准确的计数,您必须在服务器上设置一个解析器,以在用户从您这边查询数据时从信息页面捕获准确的计数。

    【讨论】:

    • 有单个请求的限制,您可以使用query-continue和多个请求获得总数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多