Python 3
from datetime import datetime, timedelta
from urllib.parse import urlencode, urlparse, urlunparse
def all_dates(start_date, end_date):
current_date = start_date
one_day = timedelta(days=1)
while current_date != end_date:
yield current_date
current_date += one_day
yield current_date
def generate_url(date):
base_url = 'http://weather.ap.polyu.edu.hk/displayHandler.php'
parsed = urlparse(base_url)
query = urlencode({
'year': date.year,
'month': date.month,
'date': date.day,
'optStation': 6100,
'optElement': 'f1',
'isFlag': ''
})
return urlunparse((
parsed.scheme,
parsed.netloc,
parsed.path,
parsed.params,
query,
parsed.fragment
))
if __name__ == '__main__':
start_date = datetime(year=2015, month=1, day=1)
end_date = datetime(year=2018, month=1, day=1)
with open('outfile.csv', 'w') as f:
for date in all_dates(start_date, end_date):
f.write('{}\n'.format(generate_url(date)))
Вы не ответили о том, какими должны быть точные даты начала / окончания, поэтому мне просто пришлось угадать пример (1 января 2015 - 1 января 2018).Вы можете просто изменить эти две переменные, start_date
& end_date
, на все, что вы хотите.
outfile.csv
Вы также можете использовать Python для загрузки этих изображений вместоиспользуя расширение chrome, но я постарался пока оставить этот ответ простым.