Collect the finish times of every finisher of the Wineglass Marathon (Corning, New York) for
each year whose results Leone Timing posts as a web page. Start from the year's page at
https://www.leonetiming.com/YEAR/Roads/Wineglass/ for YEAR from 2018 to 2025; some years have
no page (there was no race in 2020). On each year's page, follow the link to the marathon
results by net time (not the half marathon, not the relay).
Rules: send a user agent that identifies the request as "AEM 6850 class demo; <address>"; at
most one request per second; save every page you fetch in cache/ and never fetch the same page
twice; if the server answers 429, wait and retry. The pages list runners' names, ages and
towns: keep only place, sex, age group and net time, and never print or save names, even
while you study a page's layout.
Write wineglass.csv with one row per finisher and the columns year, place, sex, age_group,
net_time (h:mm:ss) and net_minutes. Draw wineglass.png: the number of finishers in each
one-minute bin of net time from 2:30 to 6:30, all years together, with vertical lines at 3:00,
3:30, 4:00 and 4:30. Draw wineglass_years.png: the number of finishers and the median net
time, by year.
When you are done, print: for each year, the number of rows you kept and the last place
number on that year's page; the number of finishers at 3:57, 3:58, 3:59, 4:00, 4:01 and 4:02
(minutes, all years); and the median net time by year.
Use R.