Bu hatanın sebebi nedir


#1


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


#2

Kodları atabilirmisin?


#3

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


#4

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


#5

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


#6

Helal sana. Dediğini yaptım oldu.
Bir sorum var kivi ile internetten nasıl veri alınır.
Bir siteden hadis almak istiyorum .


#7

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

#8

Kivyde selenium kullanılıyormu ?


#9

Bana soruyorsan daha önce hiç denemedim. :slight_smile:


#10
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.


#11

Tam hatayı paylaşır mısınız?


#12

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)

#13
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.


#14

Çok basit bir hata. %d olan yere ancak sayı gelebilir. Siz burda string yüklemeye çalışmışsınız.


#15

d yaptım ama butona tıklanınca veri gelmedi.s yaptım bu sefer hataverdi kapandı


#16

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)

#17
# -*- 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.


#18

Bu request ile requests arasındaki fark nedir.
Birde “html.parser” dediğimizde veriyi parse etmiş oluyormuyuz.