Uma maneira de fazer isso é exportar o histórico do artigo e processar as revisões usando uma ferramenta local como git blame
. Isso pode ser feito usando um script.
Para exportar a história artigo, utilizarSpecial:Export
, especificamente: https://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Blinkenlights
.
Para gerar a culpa, primeiro adicione as revisões a um repositório temporário git (mostrado em Python 3):
import tempfile
import subprocess
with tempfile.TemporaryDirectory() as repo:
os.chdir(repo.name)
subprocess.check_call(['git', 'init'])
Em seguida, faça o download do XML exportado do histórico, analise-o com algo como lxml.etree
e faça um loop sobre as revisões (xpath //revision
). Para cada revisão, escreva o texto em um arquivo (digamos article.wiki
), leia o autor e execute
subprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)])
Depois que todas as revisões forem adicionadas ao repositório, execute git blame article.wiki
para ver o autor de cada linha.
Nota: Special:Export
pode restringir o número de revisões exportadas; portanto, em páginas com histórico longo, é necessário buscar o XML várias vezes.