1

我正在为夏天做一个研究项目,我必须使用从维基百科获取一些数据,存储它,然后对其进行一些分析。我正在使用 Wikipedia API 来收集数据,而且我已经很好地完成了。

我的问题是关于此处links-alllinksAPI文档中的选项的问题 在阅读了那里和API本身中的描述后(它有点低,我无法直接链接到该部分),我想我明白它应该是什么返回。但是,当我运行查询时,它给了我一些我没想到的东西。

这是我运行的查询:

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=google&rvprop=ids|timestamp|user|comment|content&rvlimit=1&list=alllinks&alunique&allimit=40&format=xml

其实质是:获取谷歌页面的最新修订,包括每个修订的id、时间戳、用户、评论和内容,并以XML格式返回。链接(我认为)应该给我一个指向谷歌页面的维基百科页面列表(在这种情况下是前 40 个唯一的页面)。

我不确定发誓的政策是什么,但这是我得到的结果:

<?xml version="1.0"?>
<api>
    <query><normalized>
        <n from="google" to="Google" />
        </normalized>
        <pages>
            <page pageid="1092923" ns="0" title="Google">
                <revisions>
                    <rev revid="366826294" parentid="366673948" user="Citation bot" timestamp="2010-06-08T17:18:31Z" comment="Citations: [161]Tweaked: url. [[User:Mono|Mono]]" xml:space="preserve">
                        <!-- The page content, I've replaced this cos its not of interest -->
                    </rev>
                </revisions>
            </page>
        </pages>
        <alllinks>
                <!-- offensive content removed -->
        </alllinks>
    </query>
    <query-continue>
        <revisions rvstartid="366673948" />
        <alllinks alfrom="!2009" />
    </query-continue>
</api>

<alllinks>部分,它只是一堆随机的狼吞虎咽和冒犯性的评论。几乎没有我想我会得到的。我进行了相当多的搜索,但我似乎无法找到我的问题的直接答案。

  1. list=alllinks期权应该返回什么?
  2. 为什么我会把这些垃圾放进去?
4

1 回答 1

2

你不想要一个列表;列表是遍历所有页面的东西。在您的情况下,您只需“枚举指向给定名称空间的所有链接”。

您需要与 Google 页面关联的属性,因此您需要 prop=links 而不是 alllinks 废话。

所以你的查询变成: http://en.wikipedia.org/w/api.php?action=query&prop=revisions|links&titles=google&rvprop=ids|timestamp|user|comment|content&rvlimit=1&format=xml

于 2010-07-26T10:43:24.883 回答