Parse podatkov iz Arsove strani
 
inkanet 7. okt 2009 13:30:23 Pridružen od:
3. okt 2008
328 objav
110 1 2
#1

Kako bi s strani http://www.arso.gov.si/vode/podatki/stanje_voda.html dobil vrednosti: Vodostaj, pretok in temperatura za konkretno postajo (Soča Log Čezsoški) ?



Vrednosti bi se izpisale s pomočjo PHP modula v Joomli.



Verjetno bi se dalo z @preg_match in echo ukazom, samo ne vem kako bi zastavil celoten skript.



Tole je del izvorne kode kjer se nahajajo navedene 3 vrednosti:




<tr><td class="onlineimena">Soča - Log Čezsoški</td><td class="onlinedesno">79</td><td class="onlinedesno">13.9</td><td class="onlinedesno"> </td><td class="onlinedesno">9.1</td><td class="onlinedesno">4.</td></tr>




Kakšen namig ?


všeč(0) ni všeč(0) spam(0)
 
blackmamba 7. okt 2009 13:45:23 Pridružen od:
4. mar 2008
559 objav
392 25 11
#2

zelo na hitro:


$text = '<tr><td class="onlineimena">Soča - Log Čezsoški</td><td class="onlinedesno">79</td><td class="onlinedesno">13.9</td><td class="onlinedesno">&nbsp;</td><td class="onlinedesno">9.1</td><td class="onlinedesno">4.</td></tr>';
preg_match_all("/\">(.*?)<\/td/si", $text, $result);
print_r($result);

[1] => Array

(

[0] => Soča - Log Čezsoški

[1] => 79

[2] => 13.9

[3] =>  

[4] => 9.1

[5] => 4.

)


všeč(3) ni všeč(0) spam(0)
 
msmid 7. okt 2009 14:07:24 Pridružen od:
15. jul 2008
50 objav
13 0 0
#3

Arso ima za to poseben servis http://meteo.arso.gov.si/met/sl/service/. Bo verjetno lažje.



Lp,

Mitja


všeč(3) ni všeč(0) spam(0)
 
inkanet 7. okt 2009 15:53:51 Pridružen od:
3. okt 2008
328 objav
110 1 2
#4

Arso ima za to poseben servis http://meteo.arso.gov.si/met/sl/service/. Bo verjetno lažje.




Ima, samo tam ne najdem podatkov o stanju voda ampak samo vremensko napoved.


všeč(0) ni všeč(0) spam(0)
 
inkanet 7. okt 2009 15:55:40 Pridružen od:
3. okt 2008
328 objav
110 1 2
#5

Blackmamba, hvala za idejo, edino problem je da je na strani vrstic s podobno strukturo več (za vsako postajo po ena) Jaz bi rabil samo za navedeno (Soča - Log Čezsoški). Kako bi dobil samo podatke za to postajo ?


všeč(0) ni všeč(0) spam(0)
 
inkanet 7. okt 2009 20:28:06 Pridružen od:
3. okt 2008
328 objav
110 1 2
#6

Sem sam nekaj po kmecko skupaj spravil. Takole zgleda in tudi deluje edino vrne samo 1. vrednost (vodostaj), ne vem pa kako bi izpisal se pretok in temperaturo.


<?php
preg_match_all("/Čezsoški<\/td><td class\=\"onlinedesno\">([0-9\.]*?)<\/td/si",file_get_contents('http://www.arso.gov.si/vode/podatki/stanje_voda.html'), $result);
echo "Vodostaj: ";
echo $result[1][0];
?>
všeč(0) ni všeč(0) spam(0)
 
provincjalc 8. okt 2009 06:21:10 Pridružen od:
22. maj 2009
101 objav
62 8 2
#7

<Offtopic>



inkanet: a delaš nov kajakaški portal ki bi zamenjal "pokojnega" mokr.si ?


všeč(0) ni všeč(0) spam(0)
 
blackmamba 8. okt 2009 08:05:54 Pridružen od:
4. mar 2008
559 objav
392 25 11
#8
$text = file_get_contents("http://www.arso.gov.si/vode/podatki/stanje_voda.html");

preg_match_all("/<table class\=\"online\">(.*?)<\/table>/si", $text, $result);

$table_1 = $result[1][0];
$table_2 = $result[1][1];

$tr_ji = explode("\n", $table_1); //ker sta na strani 2 tabeli, si tukaj zberi iz katere hočeš podatke

$data = array();
foreach ($tr_ji as $key=>$tr){
preg_match_all("/\">(.*?)<\/td/", $tr, $tmp);
if(count($tmp[0])>0)
$data[] = $tmp[1];
}

print_r($data);

Array

(

[0] => Array

(

[0] => Mura - Gornja Radgona

[1] => 105

[2] => 111

[3] => pada

[4] => 13.6

[5] => 4.

)


[1] => Array
(
[0] => Mura - Petanjci
[1] => 178
[2] => 127
[3] => pada
[4] => 13.8
[5] => 6.
)

....


všeč(4) ni všeč(0) spam(0)
 
G-force 8. okt 2009 08:46:05 Pridružen od:
31. mar 2008
828 objav
516 60 3
#9

Mene pa zanima, če znajo biti zaradi tega kakšni problemi pri ARSO?


všeč(0) ni všeč(0) spam(0)
 
Perun 8. okt 2009 08:57:39 Pridružen od:
21. jul 2008
4040 objav
4973 260 37
#10

Po moje veljajo enaka pravila kot za statisticni zavod (oz. vse institucije, ki se financirajo iz proracuna) ... Podatke je dovoljeno uporabljati ob navedbi vira, brez posebnih dovoljenj ...


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se