Kodları atabilirmisin?
matematik.kv 20. satırda uygulamadan çıkmak için root.exit()
yazmıssın. Onu silip yerine app.stop()
yaz düzelir.
Bunu nereden anladınız, ben kodları göremedim.
Ekran görüntüsündeki log kaydından.
Helal sana. Dediğini yaptım oldu.
Bir sorum var kivi ile internetten nasıl veri alınır.
Bir siteden hadis almak istiyorum .
Yani normalde python ile nasıl alıyorsan öyle, değişen bir şey yok. Misal Python 2 ile;
import urllib2
veri = urllib2.urlopen('https://veri_alinacak_site.com').read()
print veri
Kivyde selenium kullanılıyormu ?
Bana soruyorsan daha önce hiç denemedim.
from kivy.app import App
from kivy.lang import Builder
import urllib3
kv="""
BoxLayout:
orientation:"vertical"
Label:
text:"namaz"
id:lbl
Button:
text:"a"
on_press:app.veri()
"""
class uygu(App):
def build(self):
return Builder.load_string(kv)
def veri(self):
veri=urllib3.urlopen("https://namazvakitleri.diyanet.gov.tr/tr-TR").read()
veri=self.root.ids.lbl.text
self.root.ids.lbl.text="%s"% veri
uygu().run()
Attribute Urlopen. Hayası veriyor.
Tam hatayı paylaşır mısınız?
urllib2 ile urllib3’ün kullanımları farklıdır.
import urllib3
veri = urllib3.PoolManager()
veri = veri.request('GET','https://namazvakitleri.diyanet.gov.tr/tr-TR').data
print(veri)
from kivy.app import App
from kivy.lang import Builder
import urllib3
kv="""
BoxLayout:
orientation:"vertical"
Label:
text:"namaz"
id:lbl
Button:
text:"a"
on_press:app.veri()
"""
veri=urllib3.PoolManager()
veri=veri.request("GET","https://namazvakitleri.diyanet.gov.tr/tr-TR").data
class uygu(App):
def build(self):
return Builder.load_string(kv)
def veri(self):
veri=self.root.ids.lbl.text
self.root.ids.lbl.text="%d,%s"%str(veri)
uygu().run()
Böyle yapınca
Böyle hata aldım.
Çok basit bir hata. %d olan yere ancak sayı gelebilir. Siz burda string yüklemeye çalışmışsınız.
d yaptım ama butona tıklanınca veri gelmedi.s yaptım bu sefer hataverdi kapandı
Aslına bakarsanız, oturup kodunuzu ciddi bir şekilde incelemeniz gerekiyor. Sanırım biraz Python temellerinizde eksiklik var. Önce bunları tamamlamanızı tavsiye ediyorum. Bu sorunlarınızı çözeriz evet ama, temelde eksiklik oldukça sürekli konu açacaksınız…
Sorunuza gelince, verinin gelmemesi farklı nedenlere bağlı olabilir. Diyanet sitesi, botlara önlem almış olabilir, bu durumda user-agent bilgisini değiştirerek bağlanmayı deniyebilirsiniz. Son olarak, gelen veriyi şu şekilde ele alabilirsiniz
self.root.ids.lbl.text = "%s"%str(veri)
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.lang import Builder
import requests
from bs4 import BeautifulSoup
kv="""
BoxLayout:
orientation:"vertical"
Label:
text:"deneme"
id:lbl
Button:
text:"git"
on_press:app.git()
"""
url=("http://www.trt.net.tr")
veri=requests.get(url)
veri = BeautifulSoup(veri.content,"html.parser")
html=veri.body#title,head
print(html)
class ezan(App):
def build(self):
return Builder.load_string(kv)
def git(self):
veri = self.root.ids.lbl.text
self.root.ids.lbl.text = "%s" % str(html)
print(veri)
ezan().run()
Labelde ancak bu kodla gösterebildim.
body ,title ve headla alabildim ama namaz vakitlerini alamadım.
Biraz daha araştırmalıyım.
Bu request ile requests arasındaki fark nedir.
Birde “html.parser” dediğimizde veriyi parse etmiş oluyormuyuz.