【问题标题】:is there a way to automate downloading of wikipedia articles using special:export?有没有办法使用 special:export 自动下载维基百科文章?
【发布时间】:2011-07-07 21:58:06
【问题描述】:

我希望能够从 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()

有什么建议吗?

【问题讨论】:

标签: mediawiki wikipedia


【解决方案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)

【讨论】:

  • 有关用户代理策略,请参阅 Meta-Wiki
  • 太棒了!谢谢 :) 显然上面指定的 User-Agent 应该根据这个策略进行更新。
  • 没问题。很高兴我能帮忙:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-22
  • 2012-01-31
  • 1970-01-01
  • 2018-03-22
相关资源
最近更新 更多