批量下载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)#失败的数据输出

查看原文