2017-07-19 16 views
0

の歴史全体をダウンロードし、私はウィキペディア上の単一の物品の全体の改訂履歴をダウンロードしたいのですが、バリケードに実行しています。はWikipediaのページ

全体のWikipediaの記事をダウンロードする、または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.htmlrevisionsメソッドを探してください。

編集:私も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

あなたは大歓迎です。私はちょうど自分自身を追加しようとしていた。 –

関連する問題