1

ローカルのMediaWikiインストールからいくつかの記事(すべての記事ではない)のMediaWikiマークアップをエクスポートしたいと思います。履歴などではなく、現在の記事のマークアップだけが必要で、記事ごとに個別のテキストファイルが必要です。このエクスポートは、リモートではなく、MediaWikiサーバーでプログラム的に理想的に実行したいと思います。

たとえば、Apple、Banana、Cupcakeの記事に興味がある場合は、次のことができるようにしたいと思います。

article_list = ["Apple"、 "Banana"、 "Cupcake"]
article_list内の場合:
    get_article(a、a + ".txt")

私の意図は次のとおりです。

  • 必要な記事を抽出する
  • MediaWikiマークアップを個々のテキストファイルに保存する
  • 別のプログラムで解析して処理する

これはMediaWikiですでに可能ですか?それはそれのようには見えません。また、Pywikipediabotにそのようなスクリプトがあるようには見えません

フォールバックは、これを手動で(エクスポート特殊ページを使用して)実行し、出力をテキストファイルに簡単に解析できるようにすることです。これを行うための既存のツールはありますか?MediaWiki XMLダンプ形式の説明はありますか?(見つかりませんでした。)

4

2 に答える 2

2

サーバー側では、データベースからエクスポートするだけです。リモートで、Pywikipediabotにはget.py、特定の記事のウィキコードを取得するというスクリプトがあります。手動で行うのも非常に簡単です。どういうわけか次のようになります(これをメモリから書き込むと、エラーが発生する可能性があります)。

import wikipedia as pywikibot
site = pywikibot.getSite() # assumes you have a user-config.py with default site/user
article_list = ["Apple", "Banana", "Cupcake"]
for title in article_list:
    page = pywikibot.Page(title, site)
    text = page.get() # handling of not found etc. exceptions omitted
    file = open(title + ".txt", "wt")
    file.write(text)

MediaWikiの言語は明確に定義されていないため、それを解析/処理する唯一の信頼できる方法はMediaWiki自体を使用することです。Pywikipediabotではそれをサポートしておらず、それを実行しようとするいくつかのツールは複雑なテンプレートでは失敗します。

于 2011-10-15T17:22:11.743 に答える
1

getText.phpは、特定の記事のwikitextをエクスポートするための組み込みのサーバー側メンテナンススクリプトのようです(データベースにクエリを実行するよりも簡単です。)

MediaWikiからのエクスポートに関するすべての角度をカバーするMediaWikiからの公開を介してそれを見つけました。

于 2011-10-17T06:55:27.260 に答える