批量下载科研数据

批量下载科研数据(纪念我的第一个爬虫)

最近需要下载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找到所需的数据集。进入相应网页。
批量下载科研数据_第1张图片
这是我需要的数据集,首先点击login登录。
批量下载科研数据_第2张图片
按f12进入开发者模式,查找自己的cookie 和 user-agent。批量下载科研数据_第3张图片
最后在登录后的页面点击get data进入数据选择页面。
批量下载科研数据_第4张图片
选好后点击Download links list,即可下载所有数据的URL。
批量下载科研数据_第5张图片

导入包并读取所有数据的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)

你可能感兴趣的:(爬虫,python,科研,python,爬虫,数据获取)