web-dev-qa-db-ja.com

ウィキペディアのAPIを使用してウィキペディアのコンテンツを取得する方法は?

ウィキペディアの記事の最初の段落を取得したい。

そのためのAPIクエリは何ですか?

45
bbnn

MediaWiki docs のこのセクションを参照してください

これらは主要なパラメーターです。

prop=revisions&rvprop=content&rvsection=0

rvsection = 0は、リードセクションのみを返すことを指定します。

この例をご覧ください。

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&rvsection=0&titles=pizza

HTMLを取得するには、同様にaction = parseを使用できます http://en.wikipedia.org/w/api.php?action=parse&section=0&prop=text&page=pizza

テンプレートまたはインフォボックスを削除する必要があることに注意してください。

45
Gabe

コンテンツの概要を取得するためだけのクリーンなウィキペディアAPIはありますか? を参照してください。ここに私が提案したものがあります:

実際には、propという非常に素晴らしいextractsこの目的のために特別に設計されたクエリで使用できます。抽出により、記事の抽出(切り捨てられた記事テキスト)を取得できます。 exintroと呼ばれるパラメーターがあり、これを使用して番目のセクションのテキストを取得(画像やインフォボックス)。特定の文字数(exchars)や特定の数の文(exsentences

これは、サンプルクエリですhttp://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro =&titles = Stack%20Overflow およびAPIサンドボックスhttp://en.wikipedia.org/wiki/Special:ApiSandbox #action = query&prop = extracts&format = json&exintro =&titles = Stack%20Overflow このクエリをさらに試すには。

特に最初の段落が必要な場合は、最初のタグを取得する必要があることに注意してください。ただし、このAPI呼び出しには、解析する画像のような追加のアセットはありません。この概要に満足したら、htmlタグを削除する php's strip_tag などの関数を実行して、テキストを取得できます。

29
AnthonyS

私はこのようにします:

https://en.wikipedia.org/w/api.php?action=opensearch&search=bee&limit=1&format=json

取得する応答は、解析が容易なデータを含む配列です。

[
  "bee",
  [
    "Bee"
  ],
  [
    "Bees are flying insects closely related to wasps and ants, known for their role in pollination and, in the case of the best-known bee species, the European honey bee, for producing honey and beeswax."
  ],
  [
    "https://en.wikipedia.org/wiki/Bee"
  ]
]

最初の段落を取得するにはlimit=1は必要なものです。

20
gugol

多数の記事に対してこれを行う必要がある場合は、Webサイトを直接クエリするのではなく、Wikipediaデータベースダンプをダウンロードし、 [〜#〜] jwpl [〜#〜 ]

3
Psychonaut
<script>    
    function dowiki(place) {
        var URL = 'https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=';

        URL += "&titles=" + place;
        URL += "&rvprop=content";
        URL += "&callback=?";
        $.getJSON(URL, function (data) {
            var obj = data.query.pages;
            var ob = Object.keys(obj)[0];
            console.log(obj[ob]["extract"]);
            try{
                document.getElementById('Label11').textContent = obj[ob]["extract"];
            }
            catch (err) {
                document.getElementById('Label11').textContent = err.message;
            }

        });
    }
</script>
3
SHAHZAD ALAM

https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=Java などのページを照会することにより、Wikipediaで記事の紹介を取得できます=。 jsonファイルを解析するだけで、結果はプレーンテキストになり、リンクと参照の削除を含めてクリーンアップされます。

2
ccy

それにはJQueryを使用できます。最初に、適切なパラメーターでURLを作成します。これを確認してください link パラメーターの意味を理解してください。次に、$.ajax()メソッドを使用して記事を取得します。ウィキペディアはクロスオリジンリクエストを許可しないことに注意してください。だからこそ、dataType : jsonpリクエスト。

var wikiURL = "https://en.wikipedia.org/w/api.php";
wikiURL += '?' + $.param({
    'action' : 'opensearch',
    'search' : 'your_search_term',
    'prop'  : 'revisions',
    'rvprop' : 'content',
    'format' : 'json',
    'limit' : 10
});

 $.ajax( {
    url: wikiURL,
    dataType: 'jsonp',
    success: function(data) {
       console.log(data);
    }
} );
1
riteshkasat

Wikipediaデータベースを直接ダウンロードし、スタンドアロンアプリケーションである Wiki Parser を使用して、すべてのページをXMLに解析できます。最初の段落は、結果のXMLの独立したノードです。

または、プレーンテキスト出力から最初の段落を抽出できます。

1
PlinyTheElder

サマリーのextract_htmlフィールドを使用できますRESTこのためのエンドポイント: https://en.wikipedia.org/api/rest_v1/page/summary/ Cat

注:これは、主にいくつかのケースでは括弧で囲まれた発音のほとんどを削除することにより、コンテンツを少し単純にすることを目的としています。

0
Bernd S