Wikipediaからデータを収集する方法

ブラウザ上から以下の URL にアクセスすると、Wikipedia から[キーワード]に関する記事の XMLデータを取得することができます。
http://ja.wikipedia.org/wiki/特別:データ書き出し/[キーワード]


この URL は、ブラウザからのアクセスは可能ですが、プログラムからのアクセスは拒否されます。おそらくサーバに負荷のかかる処理の実行を防止するためだろうと思います。
私の場合、Wikipedia のデータを収集するにあたり、

  • 継続的にデータを収集するのが目的ではなく、一度収集してしまえば終了。
  • サーバに負担をかけるほどのダウンロード量ではない。(明確な指標はありませんが、だいたい…)

ということが分かっていたため、サーバに迷惑をおかけすることもないだろうと判断し、アクセスする時にブラウザ情報を追加してXMLデータを取得しました。

WIKI_URL = "http://ja.wikipedia.org/wiki/%(special)s/%(keyword)s"
SPECIAL = "特別:データ書き出し"

import urllib2

opener = urllib2.build_opener()
opener.addheaders = [("User-agent", "Mozilla/5.0")]
url = WIKI_URL % {"special":SPECIAL,"keyword":[キーワード]}

data = opener.open(url)
xmlData = data.read()


こちらの URL を参考にさせていただきました。