PDA

Tam Sürümünü Görmek İçin : python ile döviz bilgileri


civciv
15/05/2007, 13:23
merhaba arkadaslar,

bir arkadasim rica ettigi icin python ile doviz bilgilerini ceken bir script yazdim.

calisan hali: http://labs.kodfabrik.com/python/dovizbilgileri.py
dovizbilgileri.py
#!/usr/bin/python

import urllib2
from xml.dom.minidom import parse

print "Content-type: text/html"
print
print "<table width='150'><tr><td>Doviz</td><td><center>Alis</<center></td><td><center>Satis</center></td></tr>"
doc = parse(urllib2.urlopen("http://www.tcmb.gov.tr/kurlar/today.xml"))
print "<tr><td>USD</td><td>%s</td><td>%s</td></tr>" % (doc.getElementsByTagName("Currency")[0].childNodes[3].childNodes[0].nodeValue,doc.getElementsByTagName("Currency")[0].childNodes[4].childNodes[0].nodeValue)
print "<tr><td>Euro</td><td>%s</td><td>%s</td></tr>" % (doc.getElementsByTagName("Currency")[11].childNodes[3].childNodes[0].nodeValue,doc.getElementsByTagName("Currency")[11].childNodes[4].childNodes[0].nodeValue)
print "</table>"


sunucunuz python destekliyorsa, bu kisacik kod sizin icin yeterli.

ancak arkadasimin sunucusu python desteklemediginden, html ile doviz bilgilerini cekmesi gerekiyordu.Ona id'si "dovizbilgileri" olan, icinde "yukleniyor" yazan bir div olusturmasini soyledim.sayfanin sonuna da script tagleri arasinda birkac satirlik kod ekledi ve boylece doviz bilgilerini cekti.ornek sayfa:


<html>
<body>

<div id="dovizbilgileri" style="width:200px; height:200px; border:10px solid black; cursor:pointer">yukleniyor</div>

<script>
var dbilg = document.createElement("script")
dbilg.setAttribute("src","http://labs.kodfabrik.com/python/dovizbilgileri_i.py")
document.body.appendChild(dbilg);
</script>

</body>
</html>


dovizbilgileri_i.py

#!/usr/bin/python

import urllib2
from xml.dom.minidom import parse

print "Content-type: text/javascript"
print
output = ""
output += "document.getElementById('dovizbilgileri').innerHTM L='<table><tr><td>Doviz</td><td><center>Alis</<center></td><td><center>Satis</center></td></tr>"
doc = parse(urllib2.urlopen("http://www.tcmb.gov.tr/kurlar/today.xml"))
output += "<tr><td>USD</td><td>%s</td><td>%s</td></tr>" % (doc.getElementsByTagName("Currency")[0].childNodes[3].childNodes[0].nodeValue,doc.getElementsByTagName("Currency")[0].childNodes[4].childNodes[0].nodeValue)
output += "<tr><td>Euro</td><td>%s</td><td>%s</td></tr>" % (doc.getElementsByTagName("Currency")[11].childNodes[3].childNodes[0].nodeValue,doc.getElementsByTagName("Currency")[11].childNodes[4].childNodes[0].nodeValue)
output += "</table>'"
print output


myavuzselim
16/05/2007, 15:08
Python ornegi olmasi acisindan faydali, fakat pratikte browser veriyi ajax ile tcmb'nin sitesinden cekip kendi islese daha uygun bir cozum olmaz mi?

civciv
16/05/2007, 16:37
xhr ile cross domain veri cekilebiliyor mu peki?

myavuzselim
16/05/2007, 20:08
Dogru bak bunu unutmustum, bu islerle aktif olarak ugrasmayinca oyle oluyor.

Aslinda once "python betigi json gibi birsey uretse, ciktiyi browser istedigi gibi kullansa" gibi birsey diyecektim, hatta bir ornek bile yazmistim. Sonra "dur bakalim, niye browser bu isi dogrudan kendi yapmiyor?" fikrine kapildim.

Soyle birsey istemcinin daha cok isine gelebilir:


#!/usr/bin/python

import urllib2
from xml.dom.minidom import parse

print "Content-type: text/javascript"
print

output = "var ALIS = 0, SATIS = 1;\n"
output += "var doviz = {";
doc = parse(urllib2.urlopen("http://www.tcmb.gov.tr/kurlar/today.xml"))

for currency in doc.getElementsByTagName('Currency'):
isim = currency.getAttribute('CurrencyCode')
alis = currency.getElementsByTagName('ForexBuying')
satis = currency.getElementsByTagName('ForexSelling')
if len(alis) > 0 and \
len(satis) > 0 and \
len(alis[0].childNodes) > 0 and \
len(satis[0].childNodes) > 0:
alis = alis[0].childNodes[0].nodeValue
satis = satis[0].childNodes[0].nodeValue
output += '\n\t"%s": [%s, %s],' % (isim, alis, satis)

output = output[0:-1]
output += "\n};\n"
print output



<html>
<body>

<div id="dovizbilgileri" style="width:200px; height:200px; border:10px solid black; cursor:pointer">yukleniyor</div>

<script>
var dbilg = document.createElement("script")
dbilg.setAttribute("src","http://abc.com/doviz.py")
document.body.appendChild(dbilg);
</script>

<script>
var html = '<table>';
html += '<tr><th></th><th>Alis</th><th>Satis</th></tr>';

if (doviz['USD'])
html += '<tr><th>USD</th> <td>' + doviz['USD'][ALIS] +
'</td><td>' + doviz['USD'][SATIS] + '</td>';

if (doviz['EUR'])
html += '<tr><th>Euro</th> <td>' + doviz['EUR'][ALIS] +
'</td><td>' + doviz['EUR'][SATIS] + '</td>';

html += '</table>';
document.getElementById('dovizbilgileri').innerHTM L = html;
</script>
</body>
</html>

civciv
16/05/2007, 22:57
eline saglik hocam, bu sekilde cok daha faydali oldu

kGlz
29/08/2007, 14:08
merhaba arkadaşlar

yukarıdaki kodları kendi bilgisayarımda çalıtırmak için Python u ve gerekli mod_pthon modulunu bilgisayarıma kurdum.apachede ve httpd.conf dosaysı içinde gerekli değişiklikeri yapmama rağmen yazdığım doviz.py dosaysının bulunamadı hatası(404-Pyhon/doviz.py dosyası bulunamadı) veriyo.

şu anda bilgisayarımda ubuntu 6.10 var.
python 2.4 desteği işletim sistemiyle birlikte geldi.
daha sonra ben "sudo apt-get install libapache2-mod-python" ile mod_ptyhon desteğinide kurdum.

şu adresteki (http://www.ubuntu-tr.com/v6/node/431)herşeyi yapmama rağmen mod_python kurulumu ile ilgili kesin ve net bir kurulum bilgisi bulamadım.

Bilgili arkadaşlardan mod_pyhon kurulum hakkında yardım istiyorum.şimdiden teşşekürler.