批量下载TanSat XCO2 产品
网址:http://39.106.65.69/CGGA 网站本身不支持直接批量点击下载,而是需要一个一个手动下载: 总共有300+数据,一个一个点可能有点麻烦,因此,可以尝试用简单的爬虫下载: 先随机下载一个数据,然后查看他的下载URL: 可以看到他的数据url有明显的规律:“https://zheda.oss-cn-beijing.aliyuncs.com/casa_data/TanSat/L2_XCO2/XXXXXX(年月)/数据名” 那么我们可根据这个规律构建出所有我们需要下载的数据的url并根据此进行下载:
import requests
import os
import random
url_header='https://zheda.oss-cn-beijing.aliyuncs.com/casa_data/TanSat/L2_XCO2/'#固定的url前缀
year=[2017,2018]
dir_out=r'E:\Tansat\CO2_data'#输出路径设置
#下面的循环主要是为了构建出所有url,大体思路就是通过年份和月份,一个月全部当成31天,可以不用考虑大小月,如果没有那一天,那么url也不会有内容
for year_i in year:
for month_i in range(1,13):
if year_i == 2017:
if month_i <= 3:
continue
if year_i == 2018:
if month_i >5:
break
# print(str(year_i)+str(month_i).zfill(2))
for day_i in range(1,32):
url_now=url_header+str(year_i)+str(month_i).zfill(2)+'/'+'TanSat_ACGS_SCI_ND_L2_XCO2_lite_'+str(year_i)+str(month_i).zfill(2)+str(day_i).zfill(2)+'.nc'
out_name='TanSat_ACGS_SCI_ND_L2_XCO2_lite_'+str(year_i)+str(month_i).zfill(2)+str(day_i).zfill(2)+'.nc'
#这开始 前面url_now已经成功将所有url已经构建成功了,后面是爬取过程:
res=requests.get(url_now)
if res.status_code == 200:
with open(os.path.join(dir_out,out_name),'wb') as f:
f.write(res.content)
print('The download file: '+out_name)#成功的数据输出
else:
print('Unsucessed file: '+out_name)#失败的数据输出
发表评论