2017-07-03 42 views
1

我正在试验Python模块wikipedia,它是维基百科API的包装。特别是我在看links API,根据我的理解,应该返回一个'页面上的维基百科页面链接标题列表',即所有对我查询的页面文本中的其他维基百科页面的引用。当我查看Google上文章的结果时,我得到了预期的链接list(维基百科标题为JSON格式)。问题在于,那里列出的链接似乎没有出现在Google页面上。我想也许它包括链接到谷歌,但这也不起作用,尤其是,在JSON结构中返回的第三个链接是ADATA。我没有在Google页面的任何地方看到ADATA的链接,也没有在ADATA页面上的任何地方链接到Google。这是一个错误还是我错过了明显的东西?维基百科链接API返回不在页面上的链接

我相信这个链接是足以重现该问题:

https://en.wikipedia.org/w/api.php?action=query&titles=Google&prop=links 

结果我看到这个样子的:

{ 
    "continue": { 
     "plcontinue": "1092923|0|Aardvark_(search_engine)", 
     "continue": "||" 
    }, 
    "query": { 
     "pages": { 
      "1092923": { 
       "pageid": 1092923, 
       "ns": 0, 
       "title": "Google", 
       "links": [ 
        { 
         "ns": 0, 
         "title": "111 Eighth Avenue" 
        }, 
        { 
         "ns": 0, 
         "title": "2600: The Hacker Quarterly" 
        }, 
        { 
         "ns": 0, 
         "title": "ADATA" 
        }, 
. . . 

在Python中,你可以复制这样的:

import wikipedia 
wikipedia.page('Google').links 

它产生如下输出:

['111 Eighth Avenue', 
'2600: The Hacker Quarterly', 
'ADATA', 
'AI Challenge', 
'AKM Semiconductor, Inc.', 
'AOL', 
'API.AI', 
+0

您可能想要发布代码,所以别人可以尝试复制。 – perfect5th

+1

不应该是庞大的?为什么只有少数几个链接? –

+0

默认情况下,它会返回前10个链接,我相信 – OldGeeksGuide

回答

0

似乎有一些页面默认访问页面时不可见。在此示例中,当您单击页面底部的“主要信息技术公司”的“显示”按钮时,链接将出现。我相信这应该解释我所看到的。

感谢评论中的zwer,指出在哪里可以找到链接。

1

该列表包含出现在页面的wikitext或wikitext调用的模板中的链接。每次编辑后都会通过排队作业进行更新。由于作业处理的异步性质以及失败作业的重试次数有限,因此列表可能与实际文章内容不同,但不太可能。 (可能会添加到wikitext的链接,使得它们不会出现在HTML文章中,但实际上不太可能有人会这样做。)

相关问题