web-dev-qa-db-ja.com

ウィキペディアAPIが存在する場合の使用方法

ウィキペディアのapiがあるかどうかを確認しようとしています(mediawikiに関連すると思いますか?)。

もしそうなら、私はウィキペディアに例えばニューヨーク・ヤンキースについての記事を私に伝える方法を知りたいです。

この例では、REST urlはどうなりますか?

このテーマに関するドキュメントはすべてかなり複雑に見えます。

61
chris

ドキュメントを読むには本当に時間を費やす必要があります。これを修正するには、リンクをクリックしてクリックするのに少し時間がかかりました。 :/しかし、同情から私はあなたに多分あなたが使用することを学ぶことができるリンクを提供します。

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=New_York_Yankees&rvprop=timestamp|user|comment|content

これが、取得しようとしている変数です。あなたの最善の策は、あなたが後になるページを知り、ウィキペディアのリンク部分をタイトルに置き換えることです。すなわち:

http://en.wikipedia.org/wiki/New_York_Yankees [wikiの後の部分を取得/]

->

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=New_York_Yankees&rvprop=timestamp|user|comment|content

[GETリクエストのタイトル変数に配置します。

上記のURLは、必要なセクションまたは不要なセクションを取得するために調整できます。だからドキュメントを読んでください:)

81
Shadi Almosri

ここでの回答は解決策を見つけるのに役立ちましたが、この質問を見つけた他の人にとって有益なプロセスでより多くの情報を発見しました。ほとんどの人は、単にAPIを使用してコンテンツをページからすばやく取得したいと考えています。ここに私がそれをやっている方法があります:

リビジョンの使用:

//working url:
http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=Threadless&rvprop=content&format=json&rvsection=0&rvparse=1

//Explanation
//Base Url:
http://en.wikipedia.org/w/api.php?action=query

//tell it to get revisions:
&prop=revisions

//define page titles separated by pipes. In the example i used t-shirt company threadless
&titles=whatever|the|title|is

//specify that we want the page content
&rvprop=content

//I want my data in JSON, default is XML
&format=json

//lets you choose which section you want. 0 is the first one.
&rvsection=0

//tell wikipedia to parse it into html for you
&rvparse=1

抽出物の使用(私がやっていることに対してより良い/より簡単に)

//working url:
http://en.wikipedia.org/w/api.php?action=query&prop=extracts&titles=Threadless&format=json&exintro=1

//only explaining new parameters
//instead of revisions, we'll set prop=extracts
&prop=extracts

//if we just want the intro, we can use exintro. Otherwise it shows all sections
&exintro=1

記載されているように、すべての情報はAPIドキュメントを読む必要がありますが、これらの例がここに来て大勢の人が迅速に修正できることを願っています。

66
Andy Groff

http://www.mediawiki.org/wiki/API を参照してください

特に、英語版ウィキペディアの場合、APIは http://en.wikipedia.org/w/api.php にあります

13
drdaeman

https://en.wikipedia.org/wiki/Special:ApiSandbox のApiSandboxをご覧ください。これは [〜#〜] api [〜 #〜] 。数回クリックするとURLが作成され、APIの結果が表示されます。

これは、すべてのウィキペディア言語で有効になっているMediaWikiの拡張機能です。 https://www.mediawiki.org/wiki/Extension:ApiSandbox

ウィキペディアから構造化データを抽出する場合は、DbPediaの使用を検討してください http://dbpedia.org/

SPARQLを使用して、指定された基準を使用してデータをクエリする手段を提供し、解析されたWikipediaインフォボックステンプレートからデータを返します

クエリを簡単にするために、複数のプラットフォームで使用可能なSPARQLライブラリがいくつかあります

8
Maksym Kozlenko

ウィキペディアから構造化データを抽出する場合は、 http://www.wikidata.org/wiki/Wikidata:Main_Page を試すこともできます

3
brian.clear

以下は、WikipediasNew York Yankeesページの最初の文をWebブラウザコンソールに出力する実際の例です。

<!DOCTYPE html>
</html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    </head>
    <body>
        <script>
            var wikiUrl = "http://en.wikipedia.org/w/api.php?action=opensearch&search=New_York_Yankees&format=json&callback=wikiCallbackFunction";

            $.ajax(wikiUrl, {
                dataType: "jsonp",
                success: function( wikiResponse ) {
                    console.log( wikiResponse[2][0] );
                }
            });
        </script>   
    </body>
</html>

http://en.wikipedia.org/w/api.phpURLのエンドポイントです。次のURLにアクセスして、URLの構成方法を確認できます。 http://www.mediawiki.org/wiki/API:Main_page

JsonpをdataTypeとして使用して、クロスサイトリクエストを許可しました。詳細はこちらをご覧ください: http://www.mediawiki.org/wiki/API:Cross-site_requests

最後になりましたが、Jquery.ajax()APIを必ず参照してください: http://api.jquery.com/jquery.ajax/

2
JSON C11

Wiki Parser ウィキペディアのダンプをXMLに変換します。また、非常に高速です。その後、任意のXML処理ツールを使用して、解析されたウィキペディアの記事からのデータを処理できます。

1
PlinyTheElder