批量下载刘良云团队 2015年全球30米精细地表覆盖产品数据集

作者:Hywel

访问网页http://data.casearth.cn/sdo/detail/5d904b7a0887164a5c7fbfa0

并登录自己的账号

 

拉到网页底部

 

先访问“通过ID获取文件列表  getAllFileListBySdoId”的url

 

爬取这个网页,获得每个数据的名字

url = 'http://data.casearth.cn:80/api/getAllFileListBySdoId?sdoId=5d904b7a0887164a5c7fbfa0'

resp = requests.get(url)

html = eval(resp.content.decode('utf-8'))

data = html['文件信息列表']

filename = data[0]['filename']

点击tiff的数据我们可以看到下载链接url:

某数据url为

http://data.casearth.cn/casearth_data/从自己那里复制/从自己那里复制_001/GLCFCS30_E0N30.tif

可以看到http://data.casearth.cn/casearth_data/从自己那里复制/从自己那里复制_001/是固定的,只是每个数据的名字“GLCFCS30_E0N30.tif”部分不一样

名字部分可以从前面的filename获得。

因此用一个循环不断组合该链接就可以了

url1 = 'http://data.casearth.cn/casearth_data/从自己那里复制/从自己那里复制_001/' + filename

resp1 = requests.get(url1)

最后在循环中写出数据

完整代码:

import requests
import time

url = 'http://data.casearth.cn:80/api/getAllFileListBySdoId?sdoId=5d904b7a0887164a5c7fbfa0'
resp = requests.get(url)
html = eval(resp.content.decode('utf-8'))
data = html['文件信息列表']
for i in range(len(data)):
    filename = data[i]['filename']    
    url1 = 'http://data.casearth.cn/casearth_data/从自己那里复制/从自己那里复制_001/' + filename
    resp1 = requests.get(url1)
    tif_name = filename
    with open(tif_name, 'wb') as file: 
        file.write(resp1.content)
        file.flush()     
    print(tif_name )
    file.close()  # 关闭文件
time.sleep(1)
原文地址:https://www.cnblogs.com/icydengyw/p/14920347.html