下载维基百科页面的整个历史记录
问题描述:
我想下载维基百科上的单个文章的整个修订历史记录,但遇到了障碍。下载维基百科页面的整个历史记录
这是很容易下载整个维基百科的文章,或抢使用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'))
这是伟大的,谢谢比尔!为了完整性,将一些示例代码添加到答案中。 – JeffThompson
不客气,做得好!我正要添加一些自己。 –