下载维基百科页面的整个历史记录

问题描述:

我想下载维基百科上的单个文章的整个修订历史记录,但遇到了障碍。下载维基百科页面的整个历史记录

这是很容易下载整个维基百科的文章,或抢使用Special:Export URL参数的历史片段:

curl -d "" 'https://en.wikipedia.org/w/index.php?title=Special:Export&pages=Stack_Overflow&limit=1000&offset=1' -o "StackOverflow.xml" 

当然,我可以下载整个网站包括的所有版本每篇文章从here,但这是很多兆兆字节和更多的数据比我需要。

有没有预先建立的方法来做到这一点? (看起来好像一定有​​)

漫无目的地寻找另一个问题的线索,我有我自己 - 我说我对这个话题一无所知的方式! - 在阅读您的问题后,我刚刚遇到了这个问题:http://mwclient.readthedocs.io/en/latest/reference/page.html。看看revisions方法。

编辑:我也看到http://mwclient.readthedocs.io/en/latest/user/page-ops.html#listing-page-revisions。使用mwclient模块

示例代码:

import mwclient, pickle 

print 'getting page...' 
site = mwclient.Site(('https', 'en.wikipedia.org')) 
page = site.pages['Stack_Overflow'] 

print 'extracting revisions (may take a really long time, depending on the page)...' 
revisions = [] 
for i, revision in enumerate(page.revisions()): 
    revisions.append(revision) 

print 'saving to file...' 
pickle.dump(revisions, open('StackOverflowRevisions.pkl', 'wb')) 
+0

这是伟大的,谢谢比尔!为了完整性,将一些示例代码添加到答案中。 – JeffThompson

+0

不客气,做得好!我正要添加一些自己。 –