我想操作的下载链接如下:
http://hfrnet.ucsd.edu/thredds/ncss/grid/HFR/的 USWC / 6公里 /每小时/ RTV / HFRADAR,的 _US_West_Coast , _6km _ 分辨率,_Hourly_RTV_best.ncd VAR = U&安培; VAR = v&安培;北= 47.20 &安培;西= -126.3600 &安培;东= -123.8055 &安培;南= 37.2500 &安培; horizStride = 1&安培; TIME_START = 2015年11月1日 T00%3A00%3A00Z&安培; TIME_END = 2015年11月3日 T14%3A00%3A00Z&安培; timeStride = 1&安培; addLatLon =真安培;接受=的NetCDF
我想用粗体做任何变量,所以我可以询问用户他们想要的坐标和数据集。这样我就可以使用这个脚本下载不同的数据集。我还想使用相同的变量命名下载的新文件:USWC6km20151101-20151103。
我做了一些研究,并了解到我可以使用urllib.parse和urllib2,但是当我尝试使用它们时,它会说“没有名为urllib.parse的模块”。
我可以使用webbrowser.open()下载文件,但操纵网址会给我带来问题
谢谢!!
答案 0 :(得分:0)
您可以使用urllib
模块轻松下载内容 ,而不是requests
。实际工作的部分只有4行。
# first install this module
import requests
# parameters to change
location = {
'part': 'USWC',
'part2': '_US_West_Coast',
'km': '6km',
'north': '45.0000',
'west': '-120.0000',
'east': '-119.5000',
'south': '44.5000',
'start': '2016-10-01',
'end': '2016-10-02'
}
# this is template for .format() method to generate links (very naive method)
link_template = "http://hfrnet.ucsd.edu/thredds/ncss/grid/HFR/{part}/{km}/hourly/RTV/\
HFRADAR,{part2},_{km}_Resolution,_Hourly_RTV_best.ncd?var=u&var=v&\
north={north}&west={west}&east={east}&south={south}&horizStride=1&\
time_start={start}T00:00:00Z&time_end={end}T16:00:00Z&timeStride=1&addLatLon=true&accept=netcdf"
# some debug info
link = link_template.format(**location)
file_name = location['part'] + location['km'] + location['start'].replace('-', '') + '-' + location['end'].replace('-', '')
print("Link: ", link)
print("Filename: ", file_name)
# try to open webpage
response = requests.get(link)
if response.ok:
# open file for writing in binary mode
with open(file_name, mode='wb') as file_out:
# write response to file
file_out.write(response.content)
可能下一步是在包含位置字符串的列表中运行此循环。或者也许从csv文件中读取位置。