2017-07-03 9 views
1

私はPythonモジュールwikipediaを試しています。これはwikipedia APIのラッパーです。特に私はlinks APIを見ています。これは、「ページ上のWikipediaページリンクのタイトルのリスト」、つまり私が照会しているページのテキスト内の他のwikipediaページへのすべての参照を返すべきであることを理解しています。 Googleの記事の結果を見ると、期待通りにlistのリンクが得られます(JSON形式のウィキペディアのタイトル)。問題は、Googleページに表示されないリンクがリストされているように見えることです。私はおそらくそれがGoogleへのリンクを含んでいると思っていましたが、それでも動作しません。特に、JSON構造体に返される3番目のリンクはADATAです。 GoogleページのどこにでもADATAへのリンクや、ADATAページにあるGoogleへのリンクは表示されません。これはバグですか、何か分かりづらいものがありますか?Wikipedia links APIはページにないリンクを返します

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

私はこのようになります参照結果:Pythonで

{ 
    "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" 
        }, 
. . . 

をあなたはこのように再現することができます。

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から呼び出されるテンプレートに表示されるリンクが含まれています。これは、すべての編集後にキューに入れられたジョブによって更新されます。ジョブ処理の非同期性および失敗したジョブの有限回数の再試行のために、リストが実際の記事の内容と異なる可能性はありますが、ほとんどありそうにありません。 (おそらく記事HTMLに表示されないような方法でwikitextへのリンクを追加することも可能ですが、実際に誰かが実際に行うことはないでしょう)

関連する問題