zoukankan      html  css  js  c++  java
  • 批量下载刘良云团队 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)
  • 相关阅读:
    本机可以,服务器却不行
    学习摘录1Hello, World!
    钻石问题
    OPEN OFFICE使用技巧
    操作符的重载
    函数重载
    关于“结构”好别扭的一段话
    多重继承
    OPEN OFFICE操作技巧3
    70个现代风格的HTML5 WordPress主题网站
  • 原文地址:https://www.cnblogs.com/icydengyw/p/14920347.html
Copyright © 2011-2022 走看看