Я не могу скачать данные с сайта НАСА с помощью скрипта Python - PullRequest
0 голосов
/ 28 июня 2019

Я пытался загрузить набор файлов с веб-сайта НАСА https://search.earthdata.nasa.gov/search. Мне удалось войти в систему и запросить файл, но я получил ошибку.

Succesfully logged in
.
.
.
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 401: Unauthorized

Я пробовал запросы, wget, urllib2

import requests
import os
import urllib2

destination = r'C:\PROJECTS\ShallowGW\MODIS\\'
os.chdir(destination)

session_req = requests.session()

home_url = 'https://urs.earthdata.nasa.gov/home'
response0 = session_req.get(home_url)

login_url = 'https://urs.earthdata.nasa.gov/login'
login_data = {'authenticity_token': '????',
          'username': '*******',
          'password': '*******'}

response1 = session_req.post(login_url, data=login_data, 
headers=dict(referer=login_url))

try:
    response1.raise_for_status()
    print("Succesfully logged in")
except Exception as e:
    print('Login failed')

response3 = session_req.get('https://search.earthdata.nasa.gov/search')
filepath = r'C:\PROJECTS\ShallowGW\MODIS\MODIS_LST_Links_2016.txt'

with open(filepath) as f_obj:
    for line in f_obj:
        urllib2.urlopen(line)
        print(line)

Я не понимаю, почему он говорит, что я вошел в систему, затем выдает 401 HTTP ERROR. Текстовый файл имеет ссылки (например, https://e4ftl01.cr.usgs.gov//MODV6_Dal_E/MOLT/MOD11A1.006/2016.06.30/MOD11A1.A2016182.h12v04.006.2016241041516.hdf) для загрузки файла. Я могу вручную загрузить их с той же строкой, если я вошел в систему, но он не работает с Python. Предполагается, что он проходит через цикл и скачать каждый файл. Пожалуйста, помогите!

1 Ответ

0 голосов
/ 30 июня 2019

Похоже, что НАСА хочет, чтобы вы включили свой ключ API в параметры запроса (на основе этой веб-страницы).

apiKey = # YOUR API KEY HERE
requestParams = {'api_key':apiKey}

response = requests.get('https://search.earthdata.nasa.gov/search', params = requestParams)

Здесь перечислены другие параметры запроса здесь , которые могут быть полезны. Надеюсь, это поможет!

...