NASAサーバー( URL )からファイル(約1〜1.5MB /ファイル)をダウンロードしようとしていますが、役に立ちません!urllib2でいくつか試してみたところ、次の2つの結果が出ました。
- 自分のマシン上に、わずか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がどうあるべきかわかりません。アーカイブのページソース情報を調べて、そこにリストされているファイル名(Webページに表示されるものとは異なります)を取得しました。これを行うと、hdfviewに何も表示されない1.5MBのファイルが生成されます。