Given that it only takes 5 seconds, I suggest you refresh the cache constantly every minute from 6am to 9am. Use if-modified-since (conditional GET) and you will not need to download things that don't change during that time.
Wow ... well that's a concrete way to do it, so thanks. I just worry I'd be overloading the dozen-plus servers I check. For my app, I suppose every 15 minutes would be just as good. Thanks!