模拟登录

这里要用到两个包:requests和json。requests使用前得先安装:pip install requests。

In [3]:

进群:548377875   即可获取数十套PDF哦!

import requests

import json

打开地理空间数据云的登录页面。按F12进入开发者工具台,在Element栏目,我们找到登录的表单,可以看到提交到后台有6个参数:

csrfmiddlewaretoken:经过多次测试,该值固定为“mzqcGIDTWJbmIo7UFTGI3gKYEotYMFEh”不变

next:该值为空,但必须要有

userid:为登录账号

password:登录密码

captcha_0:这是一个隐藏的参数,这个参数对应的验证码,可以直接复制过来

captcha_1: 验证码

为了防止报403错误,我们得在请求中加入header和cookie,这个直接从浏览器中复制过来即可,但要把格式改成python字典形式。

数据准备好后,用requests.session()来发送请求,这样的话可以保存登录后的cookies,避免 接下来爬取数重新去拿cookies

In [4]:

def login(session):

url="http://www.gscloud.cn/accounts/validate" # 地理空间数据云的用户验证网址

data={

"csrfmiddlewaretoken":"mzqcGIDTWJbmIo7UFTGI3gKYEotYMFEh", # 在浏览器控制台获得

"next":"", # 在浏览器控制台获得,一定要有

"userid":"123456789@qq.com", # 登陆账户

"password":"123456789", # 登陆密码

"captcha_0":"9a27b5da81e71078d97226fd10ea23b47beb6ba7",

"captcha_1":"WFJG"

}

headers={

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',

"Referer":"http://www.gscloud.cn/accounts/login",

"Accept": "application/json, text/javascript, */*; q=0.01"

}

cookie={"csrftoken":"mzqcGIDTWJbmIo7UFTGI3gKYEotYMFEh","_next_":"/"}

r=session.post(url=url,data=data,headers=headers,cookies=cookie)

code=json.loads(r.text)['code'] # 0代表登陆成功

if code==0:

print("登陆成功")

return 1

else:

print("登陆失败")

return 0

if __name__ == '__main__':

session=requests.session()

login(session)

获得指定数据列表

登录成功后,我们就可以下载数据了,下载数据前我们先查询想要的数据 这里我通过行列号来查询Landsat8数据:

tableInfo:表示返回数据的基本配置,其中pagesize表示每页的数量

productId:表示数据类型,Landsat8为411

data:path和row表示数据的行列号范围

最后将所有数据名称保存在一个列表中

In [5]:

url="http://www.gscloud.cn/search/query"

data={

"tableInfo": '{"offset":0,"pageSize":100,"totalPage":10,"totalSize":96,"sortSet":[{"id":"datadate","sort":"desc"}],"filterSet":[{"id":"dataexists","value":"1"}]}',

"productId": 411,

"datatype": "OLI_TIRS",

"data": '{"path":"121-121","row":"40-40"}'}

r = session.post(url, data=data )dicts = json.loads(r.text)['data']

批量下载数据

获得数据列表后,就可以拼接下载链接,然后下载数据了

cloud_cover表示云量,剔除云量过大的数据

d_url:表示下载链接

因为遥感影像数据比较大,为了能在控制台看到下载进度,这里可以将下载分段进行,在请求中必须加上stream=True,然后通过respon.iter_content(chunk_size=chunk_size)设置每次下载的大小

In [ ]:

for ds in dicts:

cloud_cover = float(ds["cloudcover"]) #云量

if cloud_cover< 20.0:

size=0

d_url="http://www.gscloud.cn/sources/download/411/"+ds["dataid"]+"/bj" # 构建下载地址

d = session.get(d_url,stream=True)

chunk_size=1024000 #每次下载数据的大小

content_size=int(d.headers['content-length']) #文件总大小

print("文件总大小为:"+str(content_size/1024/1024))

with open("data/"+ds["dataid"]+".tar.gz", "wb") as code:

for data in d.iter_content(chunk_size=chunk_size):

code.write(data)

size+=len(data) #已下载文件大小

print('已经下载:%.4f %%' % (size*100.00/content_size))

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

python地理空间_Python批量下载地理空间数据云数据!Python无所不能!-站长资讯中心...相关推荐

  1. 如何用python批量下载数据_Python批量下载地理空间数据云数据!Python无所不能!...

    模拟登录 这里要用到两个包:requests和json.requests使用前得先安装:pip install requests. In [3]: 进群:548377875 即可获取数十套PDF哦! ...

  2. r语言python print包_python : 批量下载R语言库包

    soupR.py 代码如下# -*- coding: cp936 -*- import urllib import urllib2 import os, re from BeautifulSoup i ...

  3. python关键词挖掘_Python批量挖掘百度凤巢关键词数据

    [seo工具]关键词挖掘,获取关键词数据比较基础的部分,渠道很多,这次我们来采集凤巢的关键词数据,对关键词的分析,以及使用才是重点!我们先解决基础部分: 每次使用脚本需抓包获取cookies数据登陆百 ...

  4. mysql 地理空间支持_MySQL数据类型-地理空间数据类型

    1.MySQL地理空间数据类型 POINT,存储一个位置点数据 LINESTRING,存储一条线数据 POLYGON,存储一个多边形数据 MULTIPOINT,存储多个位置点数据 MULTILINES ...

  5. 2021-03-10 Python多线程爬虫快速批量下载图片

    Python多线程爬虫快速批量下载图片 1.完成这个需要导入的模块 urllib,random,queue(队列),threading,time,os,json 第三方模块的安装 键盘win+R,输入 ...

  6. 用Python批量下载DACC的MODIS数据

    本人初次尝试用Python批量下载DACC的MODIS数据,记下步骤,提醒自己,数据还在下载,成功是否未知,等待结果中...... 若有大佬发现步骤有不对之处,望指出,不胜感激. 1.下载Python ...

  7. python写的一个-批量下载股票年报的小工具

    python写的一个-批量下载股票年报的小工具 from urllib import request import requests import os import openpyxl# print( ...

  8. Python爬虫——利用Scrapy批量下载图片

    Python爬虫--利用Scrapy批量下载图片 Scrapy下载图片项目介绍 使用Scrapy下载图片 项目创建 项目预览 创建爬虫文件 项目组件介绍 Scrapy爬虫流程介绍 页面结构分析 定义I ...

  9. 【GEE】批量下载全球降水量GPM数据 (NASA)

    [GEE]批量下载GPM月度降水量数据 可访问GPM Data Directory 查看数据集 下载方式: 直接在GES DISC中生成数据订单,并使用wget或down them all直接下载. ...

  10. 使用IDM批量下载Sentinel(哨兵)卫星数据

    目录 1.前言 2.Sentinel数据检索 3.对IDM进行设置并完成下载 建了一个QQ群,大家可以在里边聊聊水色遥感数据下载和数据处理方面的事情:1087024529 该方法只针对online的s ...

最新文章

  1. 爬虫之selenium标签页的切换
  2. input val >=zero input_val <=one
  3. python软件怎么用-Python如何创建应用程序
  4. windows下使用QtXlsx
  5. Swift 4正式发布,新功能概览
  6. databinding在android studio2.3版本后不再默认支持使用
  7. webapi 获取请求参数
  8. NodeMCU学习(三) : 进入网络世界
  9. Transport Ship【多重背包】
  10. switch芯片和phy芯片的区别_感应式芯片卡CPU卡的FM1208-9和FM1208-10有什么区别,你知道吗?...
  11. hbase的2.2.4版本支持哪个版本的hadoop_2019 年,Hadoop 还是数据处理的可选方案吗?...
  12. python中pip不可用_python – pip无法确认SSL证书:SSL模块不可用
  13. 四大原因告诉你:云为什么比传统IT系统更安全
  14. java实现tcp服务器(单线程、多线程)、客户端
  15. 超级计算机比赛规则,介绍围棋的规则与玩法
  16. JTAG接口简要介绍
  17. 详解 Win8 KMS 激活原理_-Chaz-_新浪博客
  18. 数据库建模——概念模型、逻辑模型、物理模型
  19. u盘安装centos8黑屏_u盘centos7 安装 黑屏苹果电脑怎么安装win7系统还原
  20. python 把数字日期转换成中文日期

热门文章

  1. matlab数学建模-遗传算法基本原理
  2. 怎么用计算机求正切值的角度,在excel中如何使用正切函数计算,excel函数tan怎么反算角度...
  3. 关键路径例题图表_计算题专题:关键路径法(CPM)
  4. Weblogic安装部署步骤
  5. Windows下删除文件夹提示找不到该项目,请确认该项目的位置,然后重试。
  6. mysql substr 中文乱码_substr()乱码
  7. 常用编程语言开发工具
  8. 电工学复习【7】-- 集成运算放大器
  9. 开源免费CRM云端的客户管理系统SuiteCRM简介
  10. 自动化测试,你一定要知道的知识