【发布时间】:2026-01-08 11:50:01
【问题描述】:
我希望能够从 http://en.wikipedia.org/wiki/Special:Export 下载数千篇文章的完整历史记录,并且我正在寻找一种程序化的方法来自动化它。我想将结果保存为 XML。
这是我的Wikipedia query。我在 Python 中开始了以下操作,但没有得到任何有用的结果。
#!/usr/bin/python
import urllib
import codecs
f = codecs.open('workfile.xml', 'w',"utf-8" )
class AppURLopener(urllib.FancyURLopener):
version = "Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11"
urllib._urlopener = AppURLopener()
query = "http://en.wikipedia.org/w/index.php?title=Special:Export&action=submit"
data = { 'catname':'English-language_Indian_films','addcat':'', 'wpDownload':1 }
data = urllib.urlencode(data)
f = urllib.urlopen(query, data)
s = f.read()
print (s)
【问题讨论】:
-
为什么结果没有用?你期望得到什么?
-
请不要使用不正确的用户代理,除非完全必要。*应该与任何非空用户代理一起使用。
-
@svick:这不是完全正确的——一些用户代理字符串被列入黑名单。令人讨厌的是,这包括例如默认的 libwww-perl 用户代理字符串;如果 Python urllib 的默认 UA 字符串也在列表中,我不会感到惊讶。
-
@IlmariKaronen,是的,你是对的。但是您自己提供的用于识别您的应用的任何用户代理都应该没问题。
-
@ekhumoro 我想下载 XML 文件。
标签: python xml wikipedia wikimedia