I strongly recommend using a database with a well-defined schema. Why? Independence/Decoupling. With a database, things are under your control, not theirs. Lets look at the pros and cons of each approach:
- Pro: Always up-to-date
- Con: Availability depends on the source website
- Con: Performance/Speed depend on the source website
- Con: If the source website change their format, your site is down. Immediately.
- Con: About twice as much traffic from&to your server that you'll have to pay for
- Con: Not always up-to-date, delay of updates is hard to get below 1 minute
- Pro: You're independent. You're in a good position if
- The source site is down (your site will stay up)
- The source site changes its format (your site stays up and you can unhurriedly adapt your code
- Speed depends on the scaling of your servers, not theirs.
- Pro: If you decide to gather your data from somewhere else, the transition is way more smooth and way less work for you.
Also, consider the legal aspect of this. Make sure you are allowed to use the data of your source. If they decide to lock you out or sue you out of using their data, you need to be flexible. With a database, you have that flexibility. With live parsing you'd have that flexibility, too, but it comes with more work and less stability of your own service.
Last, but not least, the database has two important advantages live parsing cannot possibly give you: you can set your schema up so you can
- track the history of the data and show histories and statistics
- correct/adjust certain data points that you deem incorrect