前回まで
日本版Wikipediaで配布されているXMLを取得して、自宅PCのmediawikiに全記事を入れようとした。
配布されているphp版プログラムだと遅すぎ、Java版だと早いが途中で落ちてソースも見つけられなかったのであきらめた。
ネタ元サイト:http://dumps.wikimedia.org/jawiki
XMLの取得方法
wget http://dumps.wikimedia.org/jawiki/20140503/jawiki-20140503-pages-meta-current.xml.bz2
解凍すると10.3G
XMLを解析してみる
公式プログラムでXMLがMySQLのテーブル構造に変換したかったのですが、うまくいかなったので自力で解析してみることにしました。(マニュアルが探せばあると思いますが)
XMLの内容
Wikipedia http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8 MediaWiki 1.24wmf2 first-letter メディア 特別 ノート 利用者 利用者‐会話 Wikipedia Wikipedia‐ノート ファイル ファイル‐ノート MediaWiki MediaWiki‐ノート Template Template‐ノート Help Help‐ノート Category Category‐ノート Portal Portal‐ノート プロジェクト プロジェクト‐ノート モジュール モジュール‐ノート Wikipedia:アップロードログ 2004年4月 4 1 sysop 2168855 299151 2004-04-30T14:46:00Z ##アカウント情報っぽいので2行略## "LocationMacedonia.png"をアップロードしました。: マケドニアの位置 - 英語版より <ul><li>14:46 2004年4月30日 [[利用者: ##アップロード履歴らしきものが500行ほど続く## 0atpn2yli6qvrd8xzq2nnu6zp0ayovq wikitext text/x-wiki ##15000000行くらい略## Category:存命人物 {{Academic-bio-stub}} Wikipedia:削除記録/過去ログ 2002年12月 4 2 sysop 2168856 2002-12-06T09:23:16Z ##アカウント情報っぽいので2行略## deleted "Linux": goatse.cx Below is a list of the most recent deletions. All times shown are server (U.S. Pacific) time. <ul><li>09:23 2002年12月6日 User:Brion VIBBER|Brion VIBBER deleted "Linux" <em>(goatse.cx)</em></li> </ul> gbhvqlwj7ga4v9ghhy0n88iqmlo19vz wikitext text/x-wiki s4yonjfr6lbm9uua8w99u3np66ekzge wikitext text/x-wiki
手始めに「記事タイトル」「カテゴリ」「記事とカテゴリの関係」が欲しいので、データの格納先を探してみます。
ぱっと見こんな形式でしょうか。
mediawik siteinfo namespaces・・・0:記事、14:カテゴリ page title・・・記事 ns・・・namespacesに対応 id・・・後で必要かもしれないので一応押さえておく text・・・記事本文。含まれるカテゴリは[[Category:XXX]]の形式で本文の中に記述されている。