我正在尝试从 NASA 服务器(URL )下载文件(大约 1 - 1.5MB/文件) ,但无济于事!我用 urllib2 尝试了一些东西并遇到了两个结果:
- 我在我的机器上创建了一个只有 ~200KB 的新文件,其中没有任何内容
- 我在我的机器上创建了一个 1.5MB 的文件,其中没有任何内容!
“里面什么都没有”我的意思是当我打开文件时(这些是 hdf5 文件,所以我在 hdfView 中打开它们)我看不到任何层次结构......从字面上看,它看起来像一个空的 h5 文件。但是,当我在文本编辑器中打开文件时,我可以看到那里有一些东西(它是二进制的,所以在文本中它看起来像......嗯,二进制)。
我认为我正在适当地使用 urllib2,尽管我以前从未成功使用过 urllib2。您能否评论一下我所做的是否正确,并提出更好的建议?
from urllib2 import Request, urlopen, URLError, HTTPError
base_url = 'http://avdc.gsfc.nasa.gov/index.php?site=1480884223&id=40&go=list&path=%2FH2O%2F/2010'
file_name = 'download_2.php?site=1480884223&id=40&go=download&path=%2FH2O%2F2010&file=MLS-Aura_L2GP-H2O_v03-31-c01_2010d360.he5'
url = base_url + file_name
req = Request(url)
# Open the url
try:
f = urlopen(req)
print "downloading " + url
# Open our local file for writing
local_file = open('test.he5', "w" + file_mode)
#Write to our local file
local_file.write(f.read())
local_file.close()
except HTTPError, e:
print "HTTP Error:",e.code , url
except URLError, e:
print "URL Error:",e.reason , url
我从这里得到了这个脚本(这似乎是最接近工作的)。
我不确定 file_name 应该是什么。我查看了存档的页面源信息并提取了其中列出的文件名(与网页上显示的不同),这样做会产生 1.5MB 的文件,在 hdfview 中没有显示任何内容。