作者: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)