質問: ウィキペディアで記事の特定のセクションを書いた人を見つけるにはどうすればよいですか? バージョン管理システムは通常、この機能を「誰かを非難する」と呼びます。各行について、誰がいつ変更したかを示します。更新:何千もの編集がある記事の解決策を探しています(つまり、バージョン履歴をナビゲートし、それぞれをチェックすることは実用的ではありません)。
回答: それを行う1つの方法は、記事の履歴をエクスポートし、git blameなどのローカルツールを使用してリビジョンを処理することです。これはスクリプトを使用して実行できます。記事の履歴をエクスポートするには、 special:exportを使用 、具体的には https://en.wikipedia.org/w/index.php?title=special:export&history=1&action=submit&pages=blinkenlights 。非難を生成するには、最初に一時的なgitリポジトリにリビジョンを追加します(python 3を参照):import tempfile import subprocess with tempfile.temporarydirectory() as repo: os.chdir(repo.name) subprocess.check_call(['git', 'init']) 次に、エクスポートされた履歴xmlをダウンロードし、lxml.etreeなどで解析し、リビジョン(xpath //revision)をループします。リビジョンごとに、テキストをファイルに書き込み(たとえばarticle.wiki)、作成者を読み、実行しますsubprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)]) すべてのリビジョンがリポジトリに追加されたら、git blame article.wikiを実行して各行の作成者を確認します。注:special:exportはエクスポートされるリビジョンの数を制限する可能性があるため、長い履歴を持つページでは、xmlを複数回フェッチする必要がある場合があります。