web-dev-qa-db-ja.com

ウィキペディアで記事の特定のセクションを書いた人を見つけるにはどうすればよいですか?

バージョン管理システムは通常、この機能を「誰かを非難する」と呼びます。各行について、誰がいつ変更したかを示します。

更新:何千もの編集がある記事の解決策を探しています(つまり、バージョン履歴をナビゲートし、それぞれをチェックすることは実用的ではありません)。

14
Senseful

記事のView Historyリンクをクリックすると、記事に加えられた変更のリスト、日付、誰が表示されます。変更の説明の短い要約も表示されます。 Compare selected versionボタンをクリックして、テキストを比較できます。

残念ながら、特定の行または文または段落を誰が変更したかを直接確認できるBlame機能については知りません。

編集: Greg Hewillのサイト をチェックしてください。彼は(明らかに)そのような非難機能に取り組んでいます。

4
LBushkin

http://wikipedia.ramselehof.de/wikiblame.php?lang=en を使用すると、Wikipediaでリビジョンを検索できます。

11
Andrew

これを行うには、すべてのウィキペディアの記事の右上隅にある"View History"をクリックします。そこには、記事の改訂版のリストがあります。各ユーザーが具体的にコミットしたい場合は、各リビジョンの横にある"cur"をクリックすると、ウィキペディアが変更内容を強調表示します。

0
Oren Hizkiya

それを行う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を複数回フェッチする必要がある場合があります。

0