Wget in VBS

Hallo,
Ik zou graag een werkend appje (liefst VBS) bouwen dat data van KNMI site gaat halen met WGET commando.
Kent er iemand de juiste schrijfwijze?
site KNMI = https://www.daggegevens.knmi.nl/klimatologie/daggegevens
parameters stns=235:280:260&vars=VICL:PRCP&start=19700101&end=20090818

Ik haal er alleen iets van de 27ste uit. Is het genoeg dat het over historische daggegevens gaat?

Ik heb zelf de 10 minuten data van knmi en dat is echt een monsterlijke interface met een obscuur bestandsformaat.

Paulinha_B

Honourable Member

Ik heb zo eens gekeken op https://www.knmi.nl/kennis-en-datacentrum/achtergrond/data-ophalen-van… en dat ziet er me best doenbaar uit. Zeer fraai gedocumenteerd ook, ik heb ooit veel erger gezien.

Enne, csv zou ik nu niet bepaald een obscuur dataformaat noemen ;) ; bovendien kan men ook xml of json kiezen. Voorbeeldig!

@topicstarter: ik vrees dat deze vraag eigenlijk buiten de scope van het forum valt. Stuur me desgewenst een privebericht. Bedenk wel dat ik wget courant gebruik, maar wel in zijn oorspronkelijke Linux-omgeving; hoe het zich gedraagt binnen windows zou ik niet weten en ik kan het ook niet checken.

Nee het is geen csv maar "nc" Linux heeft er een tool voor in de debian rep.

code:



cd $(dirname $0)
apikey="get your own free key via knmi"


date=$(TZ=UTC date -d "-5min" +%Y%m%d%H%M | sed "s/.$/0/")


file=`curl "https://api.dataplatform.knmi.nl/open-data/datasets/Act
uele10mindataKNMIstations/versions/2/files/KMDS__OPER_P___10M_OBS_L
2_$date.nc/url" --header "Authorization: $apikey" | grep -Po 'https
://[^"]+'`

echo $file > obs.log 

curl -k "$file" > obs.nc
ncdump obs.nc > obs.txt

En dat ncdump geeft dan 30kB aan text/csv blubber

Even ter verduidelijking, de data van (eer)gisteren en ouder heeft wel een json/xml api. Ik denk dat ze de klimaathypesnowflakes goed willen bedienen en de realtime app cowboys het liefst laten betalen.

[Bericht gewijzigd door K7Jz op woensdag 1 maart 2023 13:52:23 (15%)

marcob

Golden Member

Het wordt hier toch uitgelegd:
https://www.knmi.nl/kennis-en-datacentrum/achtergrond/data-ophalen-van…

EDIT: ik zie dat user Paulinha_B hetzelfde schreef 8)7

Op GitHub staan ook wel scripts:
voorbeeld: https://github.com/EnergieID/KNMI-py

[Bericht gewijzigd door marcob op woensdag 1 maart 2023 14:39:24 (13%)

People tend to overestimate what can be done in one year and to underestimate what can be done in five or ten years
Paulinha_B

Honourable Member

@K7Jz heeft het niet over de originele vraagstelling.

En ligt ook knollen met citroenen te vergelijken:

Nee het is geen csv maar "nc"

csv is een formaat
nc is een tool, een hulpprogramma

[edit:] er bestaat blijkbaar wel een bestandsformaat netcdf, en ncdump is blijkbaar een tool om dat formaat uit te lezen; maar ik zie niet in waarom men daarlangs zou rondgaan, minstens in een linuxomgeving is dat totaal overbodig.

[edit2:] @marcob: geen probleem hoor, great minds &c &c :)

[Bericht gewijzigd door Paulinha_B op woensdag 1 maart 2023 14:56:58 (42%)

hier een manier om het met VBS te doen:

https://stackoverflow.com/questions/2973136/download-a-file-with-vbs
zoektermen om je verder te kunnen helpen:

Download file with VBS / Download page with vbs.

An amplifier is just a modulator for a power supply |Toffe Gebruiker

SSL authenticatie failed. Steeds dezelfde fout.
Verder geraak ik niet.

Op 1 maart 2023 13:05:55 schreef K7Jz:
Ik haal er alleen iets van de 27ste uit. Is het genoeg dat het over historische daggegevens gaat?

Ik heb zelf de 10 minuten data van knmi en dat is echt een monsterlijke interface met een obscuur bestandsformaat.

Dan heb je al iets, bij mij steeds SSL Authenticatie failed

Op 2 maart 2023 08:54:15 schreef DJSmiley:
Heb je wel --no-check-certificate gebruikt zoals op https://www.knmi.nl/kennis-en-datacentrum/achtergrond/data-ophalen-van… beschreven staat?

Ja hoor, commandoregel = wget.exe --no-check-certificate --debug -O Test.txt
--post-data="stns=340&vars=VICL:PRCP&byear=1970&bmonth=1&bday=1&eyear=2009&emonth=8&eday=18"
"https://www.daggegevens.knmi.nl/klimatologie/daggegevens"
geeft als resultaat "Unable to establish SSL connection"

Paulinha_B

Honourable Member

Werkt als een speer, vanop mijn Ubuntu:

code:


wget --no-check-certificate -O test.txt --post-data="stns=340&vars=VICL:PRCP&byear=1970&bmonth=1&bday=1&eyear=2009&emonth=8&eday=18" https://www.daggegevens.knmi.nl/klimatologie/daggegevens
--2023-03-02 13:15:10--  https://www.daggegevens.knmi.nl/klimatologie/daggegevens
Resolving www.daggegevens.knmi.nl (www.daggegevens.knmi.nl)... 34.241.247.38, 34.242.16.174, 52.49.247.75
Connecting to www.daggegevens.knmi.nl (www.daggegevens.knmi.nl)|34.241.247.38|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: ‘test.txt’

test.txt                        [  <=>                                    ] 300.08K  1.29MB/s    in 0.2s    

2023-03-02 13:15:11 (1.29 MB/s) - ‘test.txt’ saved [307280]

Heb je het al in een scheduler gezet waardoor de aantallen aanvragen boven een limiet uitkomen?

Jeroen

Moderator

www.daggegevens.knmi.nl ondersteunt alleen TLS v1.2 zo te zien. Het kan zijn dat jouw wget versie te oud is en dat niet ondersteunt.

Overigens begrijp ik niet waarom in de documentatie staat (zonder verdere uitleg) dat je --no-check-certificate moet gebruiken. Dat is gewoon bad practice.

Paulinha_B

Honourable Member

@Jeroen: dat zou wel eens de verklaring kunnen zijn, stom van me dat ik er niet eerder aan dacht. Gelijkaardige problemen heb ik beroepshalve meegemaakt met verouderde versies van putty.

En inderdaad: de optie --no-check-certificate is niet nodig, ik heb het nog eens uitgevoerd zonder die optie en dat ging precies even vlot. En het bewust overslaan van beveiligingen is maar een vies idee, jawel.

code:

wget -O test.txt --post-data="stns=340&vars=VICL:PRCP&byear=1970&bmonth=1&bday=1&eyear=2009&emonth=8&eday=18" https://www.daggegevens.knmi.nl/klimatologie/daggegevens
--2023-03-02 13:48:32--  https://www.daggegevens.knmi.nl/klimatologie/daggegevens
Resolving www.daggegevens.knmi.nl (www.daggegevens.knmi.nl)... 34.241.247.38, 34.242.16.174, 52.49.247.75
Connecting to www.daggegevens.knmi.nl (www.daggegevens.knmi.nl)|34.241.247.38|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: ‘test.txt’

test.txt                        [  <=>                                    ] 300.08K  1.35MB/s    in 0.2s    

2023-03-02 13:48:33 (1.35 MB/s) - ‘test.txt’ saved [307280]

Op 2 maart 2023 14:51:35 schreef Paulinha_B:
@Jeroen: dat zou wel eens de verklaring kunnen zijn, stom van me dat ik er niet eerder aan dacht. Gelijkaardige problemen heb ik beroepshalve meegemaakt met verouderde versies van putty.

En inderdaad: de optie --no-check-certificate is niet nodig, ik heb het nog eens uitgevoerd zonder die optie en dat ging precies even vlot. En het bewust overslaan van beveiligingen is maar een vies idee, jawel.

code:

wget -O test.txt --post-data="stns=340&vars=VICL:PRCP&byear=1970&bmonth=1&bday=1&eyear=2009&emonth=8&eday=18" https://www.daggegevens.knmi.nl/klimatologie/daggegevens
--2023-03-02 13:48:32--  https://www.daggegevens.knmi.nl/klimatologie/daggegevens
Resolving www.daggegevens.knmi.nl (www.daggegevens.knmi.nl)... 34.241.247.38, 34.242.16.174, 52.49.247.75
Connecting to www.daggegevens.knmi.nl (www.daggegevens.knmi.nl)|34.241.247.38|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: ‘test.txt’

test.txt                        [  <=>                                    ] 300.08K  1.35MB/s    in 0.2s    

2023-03-02 13:48:33 (1.35 MB/s) - ‘test.txt’ saved [307280]

Het lukt me ondertussen met curl ook dus zal die Wget wel loslaten.

Op 2 maart 2023 14:45:34 schreef Jeroen:
www.daggegevens.knmi.nl ondersteunt alleen TLS v1.2 zo te zien. Het kan zijn dat jouw wget versie te oud is en dat niet ondersteunt.

Overigens begrijp ik niet waarom in de documentatie staat (zonder verdere uitleg) dat je --no-check-certificate moet gebruiken. Dat is gewoon bad practice.

Het komt héél vaak voor dat curl/wget moeten tappen uit een oude certificate store die niet vaak wordt geupdate of waarvan de beheerders diverse certificate authorities niet vertrouwen. Ik heb in ieder geval voor mijn gevoel twee decennia altijd 'curl -k' (insecure) gebruikt bij https addressen. Dit was op tientallen verschillende, goed onderhouden of vers bijgewerkte (enterprise) machines.

De laatste 5-10 jaar is dit gelukkig wel verbeterd.

Misschien kregen 20 vragen per week bij her Knmi, dan is het te begrijpen dat ze het zo voorschrijven.