有没有办法使用special:export自动下载维基百科文章?

时间:2011-07-07 21:58:07

标签: mediawiki wikipedia

我希望能够从http://en.wikipedia.org/wiki/Special:Export下载几千篇文章的完整历史记录,我正在寻找一种自动化的程序化方法。 我在python中启动了以下内容,但是没有得到任何有用的结果

query = "http://en.wikipedia.org/w/index.api?title=Special:Export&pages=%s&history=1&action=submit" % 'Page_title_here'
f = urllib.urlopen(query)
s = f.read()

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

删除要在pages数组中下载的页面列表,这应该可行。运行脚本,它将打印XML文件。请注意,维基百科似乎阻止urllib用户代理,但我在页面上看不到任何暗示禁止自动下载的内容。使用风险自负。

您还可以将'curonly':1添加到字典中以仅获取当前版本。

#!/usr/bin/python
import urllib

class AppURLopener(urllib.FancyURLopener):
    version = "WikiDownloader"
urllib._urlopener = AppURLopener()

query = "http://en.wikipedia.org/w/index.php?title=Special:Export&action=submit"
pages = ['Canada']
data = { 'catname':'', 'wpDownload':1, 'pages':"\n".join(pages)}
data = urllib.urlencode(data)
f = urllib.urlopen(query, data)
s = f.read()
print(s)