2017-07-03 41 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文章中,但實際上不太可能有人會這樣做。)

相關問題