Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用特殊导出从wikipedia下载文章_Python_Xml_Wikipedia_Wikimedia - Fatal编程技术网

Python 使用特殊导出从wikipedia下载文章

Python 使用特殊导出从wikipedia下载文章,python,xml,wikipedia,wikimedia,Python,Xml,Wikipedia,Wikimedia,我希望能够从下载几千篇文章的完整历史记录,我正在寻找一种编程方法来自动化它。我想将结果保存为XML 这是我的名片。我用Python开始了以下内容,但没有得到任何有用的结果 #!/usr/bin/python import urllib import codecs f = codecs.open('workfile.xml', 'w',"utf-8" ) class AppURLopener(urllib.FancyURLopener): version = "Mozilla/5.

我希望能够从下载几千篇文章的完整历史记录,我正在寻找一种编程方法来自动化它。我想将结果保存为XML

这是我的名片。我用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)

我真诚地建议使用Mechanize来获取页面,然后使用lxml或其他xml解析器来获取所需的信息。通常我使用firefox用户代理,因为许多程序用户代理被阻止。请注意,使用Mechanize,您实际上可以填写表单并“单击”输入,然后“单击”导出。

为什么结果不有用?您希望得到什么?请不要使用不正确的用户代理,除非完全必要。Wikipedia应该与任何非空的用户代理一起工作。@svick:这不完全正确——一些用户代理字符串被列入黑名单。令人恼火的是,它包括默认的libwww-perl用户代理字符串;如果发现Python urllib的默认UA字符串也在列表中,我不会感到惊讶。@IlmariKaronen,是的,你是对的。但您为自己提供的用于识别应用程序的任何用户代理都应该可以。@ekhumoro我想下载XML文件。