Poslao: 24 Jan 2016 22:56
|
offline
- Nikola04
- Građanin
- Niko E
- Software & Information Engineering
- Pridružio: 05 Maj 2009
- Poruke: 135
- Gde živiš: Wien
|
Potreban mi je srednji kurs za € i da tu informaciju dobijam direktno sa NBS sajta. Napisao sam deo koda i interesuje me da li je ok, da li je ovo "dobra praksa" i da li postoji jednostavnije/bolje rešenje?
$link = "http://www.nbs.rs/kursnaListaModul/srednjiKurs.faces?lang=lat";
$html = file_get_contents($link);
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$tables = $doc->getElementsByTagName('table');
//Formirana
$nodes = $xpath->query("//*[@id='index:id31']", $tables->item(1));
$created = $nodes->item(0)->nodeValue;
//Eur
$nodes = $xpath->query('tbody/tr/td', $tables->item(1));
$eur = $nodes->item(4)->nodeValue;
echo "NBS - " . $created . " Srednji kurs (EUR): " . $eur;
Hvala unapred
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 24 Jan 2016 23:15
|
offline
- Srki94
- Mod u pemziji
- Pridružio: 14 Feb 2008
- Poruke: 12403
|
Ne znam PHP ali mislim da mi ovo liči na hardkodirani pristup koji informacije čupa iz source-a stranice ?
To je loše zato što :
- Ako oni izmene nešto na svom sajtu, ti ostaješ bez informacija i moraš da popravljaš kod.
- Imaju već API izgleda, baci pogled ovde : http://nbs.rs/internet/latinica/16/index.html
Citat:Registrovani korisnici veb-servis sistema dobijaju mogućnost pristupa javnim podacima Narodne banke Srbije, putem konzistentnog skupa programskih interfejsa. Na taj način im je omogućeno da ponuđene podatke integrišu u svoje informacione sisteme korišćenjem širokog spektra programerskih tehnologija. Važno je napomenuti da veb-servis sistem ne omogućava pristup podacima preko gotovih vizuelnih interfejsa. Korisnicima je ostavljeno da sami razviju svoje aplikativne module i koriste podatke na način koji najviše odgovara njihovim poslovnim potrebama. Detaljan opis usluga sistema veb-servisa dat je u tehničkoj dokumentaciji.
Još nešto :
Ako imaš mnogo korisnika, pri čemu će svaki put da se povuče ceo source, NBS može da vidi to kao zloupotrebu ili napad ako dolazi sa tvog sajta uvek.
Kažem, ne znam PHP, sačekaj da se javi neko stručniji. Ja bih API svakako koristio ako je dostupan.
|
|
|
|
Poslao: 24 Jan 2016 23:37
|
offline
- Nikola04
- Građanin
- Niko E
- Software & Information Engineering
- Pridružio: 05 Maj 2009
- Poruke: 135
- Gde živiš: Wien
|
Srki94 ::Ne znam PHP ali mislim da mi ovo liči na hardkodirani pristup koji informacije čupa iz source-a stranice ?
- Upravo to radi
Inače i meni je prošlo kroz glavu ovo - nisam siguran da je "legalno". Pročitao sam uslove i način korišćenja sistema i ne pada mi na pamet da se učlanim u veb-servis sistem Narodne banke Srbije. Ipak ja pravim samo jednu sasvim običnu web aplikaciju - ništa toliko ozbiljno.
|
|
|
|
Poslao: 24 Jan 2016 23:46
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Zar se kurs ne menja na dnevnom nivou? U tom slučaju nema potrebe da se svaki put vuče podatak iz njihove baze, već je dovoljno da se povuče jednom, onda kada prvi korisnik zatraži taj podatak, a tada može i da se sačuva lokalno za dalju upotrebu u toku tekućeg dana.
|
|
|
|
Poslao: 24 Jan 2016 23:49
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
Koliko se ja secam, kurs se ne osvezava u real-time (bar ne kod nas) - vec samo jednom dnevno (a vikendom se uopste ne osvezava) tako da mozes da uradis sledece:
1. Prvi korisnik dodje na sajt, povuce podatke sa sajta NBS, ti sacuvas u bazi kurs i datum.
2. Svim sledecim korisnicima prikazujes kurs iz baze.
3. Cim prvi korisnik dodje, a datum za kurs se razlikuje od trenutnog - vratis se na korak 1.
|
|
|
|