Python 如何从给定的URL下载此XML文件
我正在尝试从以下URL下载XML文件 但是,下面的代码只下载一个空文件。我不确定如何“遵循”上面的链接并获取生成的XML文件。希望这是可能的Python 如何从给定的URL下载此XML文件,python,xml,urllib,Python,Xml,Urllib,我正在尝试从以下URL下载XML文件 但是,下面的代码只下载一个空文件。我不确定如何“遵循”上面的链接并获取生成的XML文件。希望这是可能的 import urllib urlfile = "http://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm" urllib.urlretrieve(urlfile,"c:\\test.xml") 任何帮助都将不胜感激!谢谢 服务器采用用户代理嗅探;它查看用户代理头,如果它不喜欢它看到的内容
import urllib
urlfile = "http://www.equibase.com/premium/eqbLateChangeXMLDownload.cfm"
urllib.urlretrieve(urlfile,"c:\\test.xml")
任何帮助都将不胜感激!谢谢 服务器采用用户代理嗅探;它查看用户代理头,如果它不喜欢它看到的内容,它将返回一个空响应 您可以自己设置标题:
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'
用户代理字符串显然足以说服服务器提供文件
我使用了(更新版本的
urllib
库)和的组合来处理设置额外的头,然后将响应数据复制到一个文件中urllib.urlretrieve()
不支持添加标题,urllib2
没有urlretrieve()
等效项。谢谢!同时也感谢机器人们抬起头来。我现在可能要手动下载了。@TravisVOX:我误读了robots.txt
;他们不允许走一条和你很像的路。我再次删除了它,他们的robots.txt
没有提到这个URL,所以我们可以假设它可以抓取。@MartijnPieters您能解释一下如何验证或发现服务器/页面正在使用用户代理服务吗?…并且将用户代理设置为“Mozilla”
就足够了。@MartijnPieters,使用shutil而不仅仅是编写response.read()有什么好处?