批量下载刘良云团队 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)
复制代码

 

posted @   icydengyw  阅读(1308)  评论(1编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示