こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

WikipediaのPHPによるAPIについて

http://wikipedia.simpleapi.net/
にサンプルが出ていて、それを利用しようと思っています。
--以下サンプル
<?php
// キーワード指定
$keyword = "多田富雄";
// APIのURL
$url = "http://wikipedia.simpleapi.net/api?keyword=".urlencode($keyword)."&output=php";
// データを取得
$data = file_get_contents($url) ;
// PHPシリアライズパーサーを利用して解析し、配列に入れる
$array = unserialize($data);
// 配列をforeachで表示するデモ
print "<H1>Wikipedia情報</H1>";
foreach ($array as $key => $value) {
print "<a href=\"".$value[url]."\"><strong>".$value[title]."</strong></a>\n<br/>". $value[body] ."<hr/>\n\n";
}
?>
--サンプル以上
実際のwikipediaで"多田富雄"を入力し調べた時と、上記サンプルを起動してprintした時では内容が異なります。
(上記サンプルの方がかなり少ない)
unserialize関数もしくはfile_get_contents関数か、別の要因かよくわかりません。
ご経験のおありの方、ヒントだけでもいただけると助かります。
なお、私のphp経験は50-100時間程度、環境はXP,Apache2,php5です。

投稿日時 - 2009-08-13 15:48:09

QNo.5204300

すぐに回答ほしいです

質問者が選んだベストアンサー

SimpleAPIのサイトのほうを確認させていただきました。
「その言葉に関するwikipediaの記述をダイジェストとして返します。」
と記述されている通り、全文検索には対応していないようです。

どうしても全文が必要な場合は、自身でWikipediaの検索結果のHTMLをスクレイピングするなどして対応する必要がありそうです。

投稿日時 - 2009-08-15 01:02:15

補足

>SimpleAPIのサイトのほうを確認させていただきました。
>「その言葉に関するwikipediaの記述をダイジェストとして返します。」
>と記述されている通り、全文検索には対応していないようです。
ここまで調べていただきありがとうございます。

>HTMLをスクレイピング
http://www.usamimi.info/~ryouchi/scraping/index.html
にPHPでスクレイピングする方法がでていました。
やってみます。

投稿日時 - 2009-08-15 09:44:40

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

unserializeした配列を、そのまま、print_r関数で出力した場合にも、データが少ないのでしょうか。

投稿日時 - 2009-08-14 00:39:43

補足

$array = unserialize($data);
の次に、
print_r($array);
を追加しても表示される内容は全く同じでした。
=データは少ないままです。

投稿日時 - 2009-08-14 16:09:55

お礼

早速ご指摘頂き、ありがとうございます。

投稿日時 - 2009-08-14 16:08:44

あなたにオススメの質問