如何从给定 URL 下载此 XML 文件
How Can I download this XML file from given URL
我正在尝试从以下 URL...
下载 XML 文件
http://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm
然而,下面的代码除了一个空文件外没有下载任何东西。我不确定如何 "follow" 上面的 link 并获取生成的 XML 文件。希望这是可能的。
import urllib
urlfile = "http://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm"
urllib.urlretrieve(urlfile,"c:\test.xml")
如有任何帮助,我们将不胜感激!谢谢!
服务器使用User-Agent嗅探;它查看 User-Agent header,如果它不喜欢它看到的内容,它会 return 一个空的响应。
您可以自己设置header:
import urllib2
import shutil
headers = {'User-Agent': 'Mozilla'}
urlfile = "http://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm"
request = urllib2.Request(urlfile, headers=headers)
response = urllib2.urlopen(request)
with open("c:\test.xml", 'wb') as outfile:
shutil.copyfileobj(response, outfile)
'Mozilla'
User-Agent 字符串显然足以说服服务器提供文件。
我使用了 urllib2
(an updated version of the urllib
library) and shutil.copyfileobj()
的组合来处理额外的 header 设置,然后将响应数据复制到文件中。 urllib.urlretrieve()
不支持添加 header,并且 urllib2
没有 urlretrieve()
等价物。
我正在尝试从以下 URL...
下载 XML 文件http://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm
然而,下面的代码除了一个空文件外没有下载任何东西。我不确定如何 "follow" 上面的 link 并获取生成的 XML 文件。希望这是可能的。
import urllib
urlfile = "http://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm"
urllib.urlretrieve(urlfile,"c:\test.xml")
如有任何帮助,我们将不胜感激!谢谢!
服务器使用User-Agent嗅探;它查看 User-Agent header,如果它不喜欢它看到的内容,它会 return 一个空的响应。
您可以自己设置header:
import urllib2
import shutil
headers = {'User-Agent': 'Mozilla'}
urlfile = "http://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm"
request = urllib2.Request(urlfile, headers=headers)
response = urllib2.urlopen(request)
with open("c:\test.xml", 'wb') as outfile:
shutil.copyfileobj(response, outfile)
'Mozilla'
User-Agent 字符串显然足以说服服务器提供文件。
我使用了 urllib2
(an updated version of the urllib
library) and shutil.copyfileobj()
的组合来处理额外的 header 设置,然后将响应数据复制到文件中。 urllib.urlretrieve()
不支持添加 header,并且 urllib2
没有 urlretrieve()
等价物。