Tråd bedømmelse:
  • 0 Stemmer - 0 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
Spørgsmål om requests og Servlets
01-11-2017, 11:24 (Denne besked var sidst ændret: 01-11-2017, 12:15 af antilles.)
#1
Spørgsmål om requests og Servlets
Hej Alle,

Jeg er ved at lære mig lidt Python. Jeg er E-ingeniør så jeg er ok til C og C++ sådan til husbehov. Det smarte ved Python er, som mange herinde sikkert har opdaget, at man meget hurtigt kan få smækket noget brugbart sammen og få en masse funktion ud af ganske få linjers kode. Det kan man også i C, men kun hvis man er go' - meget go'! :) 

Anyways, jeg håber på lidt hjælp. Jeg vil gerne lave et script, som henter vandstandsoplysninger fra DMIs hjemmeside:
https://www.dmi.dk/hav/maalinger/vandstand/

Der er et link midt på siden, som gemmer tallene i et CVS format. Dette vil jeg gerne have ind i en tabel i mit python script. 
Linket er: http://servlet.dmi.dk/vandstand/servlet/...e=20171101

Jeg kan nogenlunde gennemskue nøglerne, som sendes med, og ved hjælp af requests modulet i python, kan jeg da også send  nøglerne og få et svar.
Kode:
import requests
from collections import OrderedDict   # enables OrderedDict()

payload = OrderedDict()

url = "http://servlet.dmi.dk/vandstand/servlet/ImageServlet"
payload["type"] = "Vandstand"
payload["pres"] = "cvs"
payload["stat"] = 20101
payload["date"] = 20171101
print payload

r = requests.get(url, params=payload)
print(r.url)
print r.text

Problemet er bare at koden returnerer et PNG image, som blot frotæller at der er noget galt med argumenterne. Selv når jeg lægger linket ind i en browser, kommer samme PNG billede frem. (så der er nok ikke noget galt med min kode som sådan) 
Prøv selv: http://servlet.dmi.dk/vandstand/servlet/...e=20171101

Der må være noget jeg overser, men hvad?  Geek

Nogle gange skal man bare kigge sig for ...

Jeg sad og kiggede på det i aftes, og mente ikke det var nødvendigt at gennemgå det igen - det var det... Der skal stå csv of ikke cvs som value i "pres" argumentet. Nå men tak for hjælpen mig selv :)
Find alle beskeder fra denne bruger
Citer denne besked i et svar
01-11-2017, 15:21 (Denne besked var sidst ændret: 01-11-2017, 16:42 af zacko.)
#2
RE: Spørgsmål om requests og Servlets
Jeg har lige forsøgt lidt selv og det ser ud til, at du ikke kan sende post requests til serveren for at se/hente lige præcis de filer fra den dato du ønsker. Det fungere simpelthen i at man sender en GET requests til serveren og så ved hjælp af javascript kan man så finde og downloade de csv filer man ønsker. Dette er et problem for requests, da det ikke er muligt at trigger javascript med requests.
Jeg har været ude for det her problem før da jeg skulle scrapy nationalbankens diskontoer, så jeg ved hvordan det skal klares. Hvis du ønsker det kan jeg lave et script til dig, der henter de csv filer du ønsker - ved betaling selvfølgelig - så kan du af det også lære hvordan det skal gøres i fremtiden, hvis du igen skulle støde på et lignende problem.

- Du sender bare en pm :)
Find alle beskeder fra denne bruger
Citer denne besked i et svar
20-11-2017, 03:38
#3
RE: Spørgsmål om requests og Servlets
http://servlet.dmi.dk/vandstand/servlet/...e=20171101
http://servlet.dmi.dk/vandstand/servlet/...e=20171101

find en fejl :)
Find alle beskeder fra denne bruger
Citer denne besked i et svar
23-11-2017, 14:58
#4
RE: Spørgsmål om requests og Servlets
cvs skal skiftes til csv
Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)