Bu hatanın sebebi nedir


Çıkış yaptığımda bu hatayı alıyorum.

Kodları atabilirmisin?

matematik.kv 20. satırda uygulamadan çıkmak için root.exit() yazmıssın. Onu silip yerine app.stop() yaz düzelir.

2 Beğeni

Bunu nereden anladınız, ben kodları göremedim.

1 Beğeni

Ekran görüntüsündeki log kaydından. :slight_smile:

4 Beğeni

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. :slight_smile:

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)
1 Beğeni
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.

1 Beğeni

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)
1 Beğeni
# -*- 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.