MATLAB Answers


How to retrieve data from a website?

Asked by ARGY B
on 14 Aug 2019
Latest activity Commented on by the cyclist
on 14 Aug 2019
I would like to retrieve data from a webasite, and store them in a matrix of two columns (or in two vectors).
I tried this:
url = ('http://matroos/direct/get_series.php?loc=hoekvanholland&source=observed&unit=waterlevel&tstart=201908140000&tstop=201908150000');
data = urlread(url);
But the result is not..satisfying!
Is there a smarter function to use instead of urlread?
(I have attached a pic of the website)


Sign in to comment.

1 Answer

Answer by the cyclist
on 14 Aug 2019

According to its documentation page, use of urlread is not recommended. It suggests using webread instead.


Thank you for your reply.However, even using webread, raises the same results. A 1x2369 char value.
Actually, I am looking for a way to omit the first 11 rows and then starting storing the data in two vectors. The one for the dates and the other for the water level values
on 14 Aug 2019
Your downloaded result is just a text file. There are probably line endings encoded in there (char 10 and/or 13), but you'll have to do the parsing yourself.
Also, I haven't yet seen a situation with http where urlread couldn't manage. For https it is generally better to use webread, but even then urlread will do fine. For situations like str2num I can understand why the use is discouraged, but for urlread and histc I can't really find the reason.
You might want to read the webread options section. The default is 'auto", which will try to determine the output type set by the server's API. I guess you could try one of the other options, if you know how the output is intended to be formatted (e.g. JSON).
It's probably just that the site returns plain text. In that case, you'll need to parse it yourself. There is an example of that here.

Sign in to comment.