2012-01-30 7 views
3

私は完全にWikipediaをダウンロードできることを知っています。しかしカテゴリ別にダウンロードする方法があるのだろうか?彼らはSpecial Exportページを持っていますが、カテゴリー(例えばカルチャー)を書くことは、子ページと別のカテゴリーのカテゴリーを追加するので、カルチャーのすべてのページを取得しようとすると、永遠にかかるでしょう。アップ。カテゴリ別にエクスポートする方法は他にもありますか? (簡単な方法で)カテゴリオプションでWikipediaをエクスポートしますか?

+0

このPHPスクリプトを試してみたいです:https://github.com/produnis/myscripts/blob/master/PHP/mwc2pdf.php – Produnis

答えて

3

私はそれを行うための他の簡単な方法はないと思います。

ダンプファイルをすべての記事(pages-articles、現在は英語のWikipediaでは7.5GB)にダウンロードし、カテゴリ別メンバーダンプ(categorylinks、1 GB)を使用してカテゴリ別にフィルタリングすることをお勧めします。

別のオプションは、[特殊:エクスポート]を手動で実行するのと同じことですが、the APIを使用して自動化します。

+0

あなたの偉大な答えをありがとう:)私はそのようにしようとします – Andrew

+0

@Andrew howあなたの問題を解決しましたか?私は似たようなことをする必要があります。再帰的に、https://petscan.wmflabs.org/のようなmysqlダンプを使用して、すべてのページを取得したいと考えています。 – diugalde

4

MediaWiki APIを使用して、あなたはこのように、prop=revisionsクエリのgeneratorとしてlist=categorymembersを使用することにより、カテゴリ内のすべてのページのウィキテキストを取得することができます:

http://en.wikipedia.org/w/api.php?action=query&generator=categorymembers&gcmtitle=Category:Culture&gcmnamespace=0&prop=revisions&rvprop=content

は、この例でリンクができますウィキペディアの最初の10項目の内容はCategory:Cultureです。 gcmlimit=maxパラメータを追加してページを増やすことはできますが、大きなカテゴリの場合はquery continuationsを正しく処理する必要があります(または、MediaWiki API clientを使用してください)。

(ただし、このクエリはのサブカテゴリカテゴリーの内のページを表示しません:文化あなたも、それらをしたい場合は、あなたがすることなく、簡単なcategorymembersクエリを使用して、カテゴリ内のページサブカテゴリのリストを取得することができます。 cmnamespaceこれを実行すると、カテゴリループに巻き込まれないように注意してください。ページをエクスポートする前に、結果を完全にチェックすることをお勧めします。—非常に簡単です道順は、完全なサブカートトラバーサルよりも多くのページを取得します。)

+0

Wikipediaのページ、カテゴリ、カテゴリのリンクをダウンロードしました。私は今、それらをすべてデータベースに持っています。 :) – Andrew

関連する問題