人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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
だと、結果が返ってきません。

よろしくお願いします。

●質問者: kohhi
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Cherenkov
●200ポイント ベストアンサー

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 – ずばぴたテック



参考

Cherenkovさんのコメント
xmlにこだわる理由はなんでしょうか? file_get_contents等でHTML取得して必要な部分だけ適当にDOMパースするのはだめなんですか?

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

kohhiさんのコメント
ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ