python modis数据拼接_python 爬虫 modis数据登录下载

该博客介绍了一个Python脚本,用于登录NASA EarthData并下载MODIS数据。脚本包括`get_download_list`函数,它根据输入的待下载数据列表生成完整的下载链接,并使用`get_cookie`函数获取登录cookie。然后,脚本遍历下载列表,保存每个文件到指定路径。同时,提供了登录页面的HTML解析和POST请求登录的实现。
摘要由CSDN通过智能技术生成

python 爬虫 modis数据登录下载

""" 代码说明: 用于modis数据的下载。

get_download_list 函数,是数据下载部分。download_wait:待下载的数据列表,例如:['MOD09GQ.006/2018.01.01/MOD09GQ.A2018001.h31v06.006.2018003030441.hdf', 'MOD09GQ.006/2018.01.02/MOD09GQ.A2018002.h31v06.006.2018004031248.hdf'],

save_path:数据保存地址。

get_cookie 函数,是登录网页。

username,password:用户名和密码

"""

from bs4 import BeautifulSoup

import requests

import os

def get_download_list(download_wait,save_path):

download_list=[] # 生成完整的下载链接,保存在download_list 列表中

url="https://e4ftl01.cr.usgs.gov/MOLT/"

# 获取下载链接列表

for i in download_wait:

download_url=url+i

print(download_url)

download_list.append(download_url)

print(download_list)

# 登录网址,获取cookie

cookie=get_cookie(username,password)

# 开始下载

for p in download_list:

os.chdir(save_path)

save_name=p.split("/")[-1]

print("正在下载:",save_name)

r=requests.get(p,cookies=cookie)

with open(save_name,"wb") as f:

f.write(r.content)

f.close()

print("下载完成:",save_name)

# 获取下载的cookie

def get_cookie(username,password):

Base_URL = "https://urs.earthdata.nasa.gov/home"

Login_URL = "https://urs.earthdata.nasa.gov/login"

'''

这里用于获取登录页的html,以及cookie

:param url: https://urs.earthdata.nasa.gov/home

:return: 登录页面的HTML,以及第一次的cooke

'''

html = requests.get(Base_URL)

first_cookie = html.cookies.get_dict()

print("first_cookie:",first_cookie)

#return response.text,first_cookie

'''

处理登录后页面的html

:param html:

:return: 获取csrftoken

'''

soup = BeautifulSoup(html.text,'html.parser')

res = soup.find("input",attrs={"name":"authenticity_token"})

token = res["value"]

print("token:",token)

#return token

'''

这个是用于登录

:param url: https://urs.earthdata.nasa.gov/login

:param token: csrftoken

:param cookie: 第一次登录时候的cookie

:return: 返回第一次和第二次合并后的cooke

'''

data= {

"commit": "Log in",

"utf8":"✓",

"authenticity_token":token,

"username":username,

"password":password

}

response = requests.post(Login_URL,data=data,cookies=first_cookie)

print(response.status_code)

cookie = response.cookies.get_dict()

#这里注释的解释一下,是因为之前是通过将两次的cookie进行合并的

#现在不用了可以直接获取就行

# cookie.update(second_cookie)

print("cookie:",cookie)

return cookie

点赞

1

收藏

分享

文章举报

043e1182c3fb07bed5f264c2ea72da99.png

068be7e19a8fd7ea1cc73db7ddbb42c1.png

Monkey_dada

发布了3 篇原创文章 · 获赞 1 · 访问量 469

私信

关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值