Advertisement
ganryu

apod.py

Mar 10th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.02 KB | None | 0 0
  1. # coding: utf-8
  2. import requests
  3. import datetime
  4.  
  5. API_KEY = ''
  6. URL = 'https://api.nasa.gov/planetary/apod'
  7. START = datetime.date(2019, 1, 1)
  8. END = datetime.date.today()
  9. IMGS_FOLDER = 'imgs'
  10. ERROR_FILE = 'apod_errors.txt'
  11.  
  12.  
  13. def print_data(data: str, filename: str):
  14.     with open(ERROR_FILE, 'a') as f:
  15.         print(data, file=f)
  16.  
  17.  
  18. def write_file(img_url: str, filename: str):
  19.     r = requests.get(img_url, stream=True)
  20.     with open(filename, 'wb') as f:
  21.         for chunk in r.iter_content(chunk_size=512*1024):
  22.             f.write(chunk)
  23.  
  24.  
  25. delta = datetime.timedelta(days=1)
  26. date = START
  27. while date < END:
  28.     date = date + delta
  29.     d = date.strftime(r'%Y-%m-%d')
  30.     img_url = f"{URL}?api_key={API_KEY}&date={d}"
  31.     data = requests.get(img_url).json()
  32.  
  33.     if data['media_type'] == 'image':
  34.         try:
  35.             filename = data['hdurl'].split('/')[-1]
  36.             write_file(data['hdurl'], '/'.join([IMGS_FOLDER, filename]))
  37.         except KeyError as e:
  38.             print_data(data, ERROR_FILE)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement