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

时间:2017-07-19 14:04:43

标签: web-scraping wikipedia

我想在维基百科上下载一篇文章的整个修订历史,但我遇到了障碍。

使用Special:Export网址参数下载整篇维基百科文章或抓取其历史记录非常容易:

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

当然,我可以下载整个网站,其中包括来自here的每篇文章的所有版本,但这可能是数TB甚至更多的数据。

是否有预先建立的方法来执行此操作? (似乎必须有。)

2 个答案:

答案 0 :(得分:4)

以上示例仅获取有关修订的信息,而不是实际内容本身。这是一个简短的 Python 脚本,可将页面的完整内容和元数据历史数据下载到单独的 json 文件中:

.container{
            position: relative;
            inset: 100px 100px;
        }

答案 1 :(得分:2)

漫无目的地徘徊寻找我自己的另一个问题的线索 - 我的方式是说我对这个话题一无所知! - 我在读完你的问题之后想出了这个问题: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'))