为了批量下载某个页面的数据,类似这样:
https://mirador.gsfc.nasa.gov/cgi-bin/mirador/presentNavigation.pl?tree=project&dataset=TRMM_3B42_Daily.7&project=TRMM&dataGroup=Gridded&version=7&CGISESSID=84e0955d8c4747aff25f1c35a58e38d0
因为链接太多,不可能一个个手点,如果遇到外网那更坑爹,一个窗口等10秒,小米手机都凉了,这样肯定需要批量下载,我亲测的有两个方法可行。
一个是我一开始查到的方法,安装了迅雷之后,可以在当前要下载的页面的链接上点右键,注意不是在页面空白处,而是它的url上
然后选择用迅雷下载所有链接,但是这个方法对这次的例子并不可用,实际上下下来的全是网页的配置文件。
第二个方法是利用火狐浏览器的downthemall插件进行批量下载。插件的安装地址见此:
https://addons.mozilla.org/en-US/firefox/addon/downthemall/
注意这是火狐的插件,一定要用火狐的浏览器才能实现。
首先,根据要下的文件的链接网址规律生成所有的网址,比如通过两个不相邻的文件下载地址找出规律:
http://disc2.gesdisc.eosdis.nasa.gov/data//TRMM_L3/TRMM_3B42_Daily.7/2015/01/3B42_Daily.20150108.7.nc4
http://disc2.gesdisc.eosdis.nasa.gov/data//TRMM_L3/TRMM_3B42_Daily.7/2016/06/3B42_Daily.20160629.7.nc4
可以发现只有在年月日的数字上有变化,而且是与实际日期相匹配的,于是我们简单的编程实现所有网址的输出,具体程序就不放了,总体就是打开txt文件,然后在for循环的控制下写入规格化的字符串,某几处要改的年月日的值是用for来控制的。如果用python输出2013年11,12月的1-9号的网址,类似如下(新手写的很蠢,不要嘲笑):
f=open(r'C:/new.txt','w')
for y in (11,12):
for z in (1,10):
f.write('http://disc2.gesdisc.eosdis.nasa.gov/data//TRMM_L3/TRMM_3B42_Daily.7/'+str(x)+'/'+str(y)+'/3B42_Daily.'+str(x)+str(y)+'0'+str(z)+'.7.nc4\n')
f.close()
执行后就会输出new文档,直接把该txt文档拖到火狐浏览器的标题栏位置,火狐就会跳出显示txt里所有内容的界面:
右键之后选择DownThemAll,就可以自动下载所有该文件里的链接:
完成!前提是必须自己生成网址,我没有尝试找更简单的方法,但是排除编程输出所有网址的过程,总体还是很简单的。