web-dev-qa-db-ja.com

APIを使用してウィキペディアを検索する

queryアクションを使用してウィキペディアを検索したい。私はこのURLを使用しています:

http://en.wikipedia.org/w/api.php?action=query&format=json&list=search&srsearch=Apple

それは機能しますが、検索の最初の結果を取得したいと思います。どうやってやるの?

注:結果が1つしかない場合、そのURLは正常に機能します。タイトルと短い説明が必要なだけです。

26
Muhammad Ashraf

1つのクエリで両方を実行できるとは思わない。

1。最初の結果を取得するには、 Opensearch API を使用します。

https://en.wikipedia.org/w/api.php?action=opensearch&search=zyz&limit=1&namespace=0&format=jsonfm

https://en.wikipedia.org/w/api.php
?action=opensearch
&search=zyz          # search query
&limit=1             # return only the first result
&namespace=0         # search only articles, ignoring Talk, Mediawiki, etc.
&format=json         # jsonfm prints the JSON in HTML for debugging.

これは戻ります:

[
    "Zyz",
    [
        "Zyzomys"
    ],
    [
        ""
    ],
    [
        "https://en.wikipedia.org/wiki/Zyzomys"
    ]
]

2。これで、最初の検索結果の記事名がわかりました。記事の最初のパラグラム(または説明)を取得するには、ここで私の答えを参照してください: https://stackoverflow.com/a/19781754/9087

47
octosquidopus

実際、ウィキペディアjson apiは正しいクエリでのみ動作するため、ウィキペディア検索を使用して実際の記事をクロールし、BeautifulSoupで解析することをお勧めします

https://en.wikipedia.org/w/index.php?search=QUERY&title=Special:Search&fulltext=Search

また、ウィキペディアがこれを行うモジュール呼び出しがあります

0
Jeeva