最近需要下载NASA的一些全球数据集,由于时间序列较长,一个个点链接下太费劲,就搞了一个简单的爬虫,以供大家方便下载数据。
python3.6、requests、pandas、time、chrome
我要下载的是GLDAS数据集,这个集合中包含不同尺度的数据,首先在https://disc.gsfc.nasa.gov/information/data-release?title=New%20and%20Reprocessed%20GLDAS%20Version%202%20Data%20Products%20Released找到所需的数据集。进入相应网页。
这是我需要的数据集,首先点击login登录。
按f12进入开发者模式,查找自己的cookie 和 user-agent。
最后在登录后的页面点击get data进入数据选择页面。
选好后点击Download links list,即可下载所有数据的URL。
import requests
import pandas as pd
import time
data_list = pd.read_table(r"数据连接地址",header=None)
由于下载数据需要登录,我们提取到的cookie 和 user-agent需要传入。
Cookieinfo = "your cookie"
User = "your user-agent"
headers = {
'Cookie': Cookieinfo,
'User-Agent': User
}
然后,利用循环,读取每一个URL,并解析。
for i in range(0,data_list.shape[0]):
url = data_list.loc[i].values[0]
# 利用split取出文件名字
s = url.split("=")[4]
print(s)
name = s.split("&")[0]
print(name)
# get URL
r = requests.get(url, headers=headers)
print(r)
# 以wb形式储存下载好的文件
with open(name, "wb") as code:
code.write(r.content)
# 为了反扒,做了一点儿延迟
time.sleep(20)