wikipediaのapiを利用しようとしています。

http://ja.wikipedia.org/wiki/前田敦子
とURLを直接たたくと、
wikipediaのトップページ検索で「前田敦子」と入力したのと同じ結果が得られます。
このページをxml形式で返してもらう方法はないのでしょうか。

http://sinkinkousoku.com/wikiapi52.php
では「取得失敗」だったり、
表示されても、内容が少なすぎたりします。
*表示されても項目が極端に少ないです。
wikipedia.simpleapi.net
の機能に依存しているのだと思います。

ソースは
http://sinkinkousoku.com/wikiapi52.html
です。
*なお
http://q.hatena.ne.jp/1329309002
のベストアンサーのソースの
$keyword="海軍兵学校卒業生一覧(日本)";

"海軍兵学校卒業生一覧(日本)"を”前田敦子”に変えただけです。

http://wikipedia.simpleapi.net/api?keyword=TCP/IP
だとxmlでちゃんと返してくれます。
http://wikipedia.simpleapi.net/api?keyword=前田敦子
http://wikipedia.simpleapi.net/api?keyword=AKB48
だと、結果が返ってきません。

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/03/15 18:55:20
  • 終了:2012/03/22 19:00:04

ベストアンサー

id:Cherenkov No.1

Cherenkov回答回数1502ベストアンサー獲得回数4922012/03/15 19:07:43

ポイント200pt

1. http://q.hatena.ne.jp/1329309002 の回答のリンクから

2. http://q.hatena.ne.jp/1329309002 のベストアンサーのコメントより

<?php
ini_set('user_agent', 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)');
$keyword="前田敦子";
$url = 'http://ja.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&titles=' . urlencode($keyword);
echo $url;
libxml_use_internal_errors(true);
echo '<html><meta charset="utf-8"></head><body>';
echo '<pre>';
if($xml=simplexml_load_file($url)) {
    print_r($xml);
} else {
    print_r(libxml_get_errors());
}
echo '</pre>';
echo '</body></html>';
libxml_use_internal_errors(false);


3. PHP Simple HTML DOM Parserを使ってスクレイピングして本文だけ抜き出すサンプル

<?php
include('simplehtmldom/simple_html_dom.php');
$keyword = "前田敦子";
$html = file_get_html('http://ja.wikipedia.org/wiki/' . urlencode($keyword));
echo '<html><meta charset="utf-8"></head><body>';
echo $html->find('.mw-content-ltr',0)->innertext;
echo '</body></html>';
注意

「サーバーに負担がかかるので、クローリングしないでください」と明記されている。
WikipediaのダンプデータをDBに投入する | Tokyo O life – ずばぴたテック



参考
他1件のコメントを見る
id:kohhi

早速お返事いただきありがとうございました。
>DOMパースする
これから、この方法勉強してみます。

2012/03/15 22:47:27
id:kohhi

ありがとうございました。

2012/03/22 21:00:21

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません