когда-то у меня был весь архив до 2009 года :)
вот мой код
import lxml.html
import requests
a = lxml.html.parse('http://apod.nasa.gov/apod/archivepix.html')
for j, i in enumerate(a.xpath('.//a[starts-with(@href, "ap")]')):
b = lxml.html.parse('http://apod.nasa.gov/apod/' + i.attrib['href'])
s = "http://apod.nasa.gov/apod/" + b.find('.//img').get('src')
with open('nasa_%d.%s' % (j, ['jpg', 'gif'][s.endswith('gif')]), 'wb') as p:
p.write(requests.get(s).content)
по вашему коду:
1. когда будет k = 950631 будет ошибка или же пустой файл, не проверял
посмотрите внимательно на ссылки, они идут не по возрастанию а по датам
2. даже если вы обработаете ошибки, то это будет бесконечный цикл
k = 950616
while k > 950615:
k = k+1
это что такое ?!