Вот что-то вроде многообещающего подхода (я не эксперт). Он использует модуль регулярного выражения re
для анализа строк в ответе request.urlopen()
и ищет заключенные в двойные кавычки имена файлов в кавычках, которые содержат то, что выглядит как дата, и заканчиваются символами '.gz'
:
import re
from urllib import request
from urllib.error import HTTPError
MAXLINES = 20 # To limit number of lines read - set to zero to disable.
directory = 'https://eogdata.mines.edu/wwwdata/viirs_products/vnf/v30'
pattern = re.compile(r""" "(\S*(\d{4} 0[1-9]|1[012] [012][0-9]|3[01])\S*\.gz)" """,
re.VERBOSE)
try:
with request.urlopen(directory) as response:
for i, line in enumerate(response, 1):
match = pattern.search(line.decode('utf-8'))
if match:
print(match.group(1)) # Print matching filename.
if MAXLINES and i > MAXLINES: # Stop early? (for testing)
break
except HTTPError as e:
print('Failed to open directory')
print('Reason: ', e.reason)