2017-07-19 67 views
0

我想下載維基百科上的單個文章的整個修訂歷史記錄,但遇到了障礙。下載維基百科頁面的整個歷史記錄

這是很容易下載整個維基百科的文章,或搶使用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,但這是很多兆兆字節和更多的數據比我需要。

有沒有預先建立的方法來做到這一點? (看起來好像一定有​​)

回答

1

漫無目的地尋找另一個問題的線索,我有我自己 - 我說我對這個話題一無所知的方式! - 在閱讀您的問題後,我剛剛遇到了這個問題: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

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